谈谈JAVA程序的反编译Java认证考试

文章作者 100test 发表时间 2010:01:01 15:50:33
来源 100Test.Com百考试题网


  如今JAVA语言在全世界范围正如火如荼般的流行,它广范地应用在INTERNET的数据库、多媒体、CGI、及动态网页的制作方面。1999年在美国对JAVA程序员的需求量首次超过C !

  作者因最近分析一些JAVA程序,对JAVA的反编译进行了一番了解,下面将我所了解的情况作以下介绍,希望对JAVA爱好者有所帮助。

  JAVA是采用一种称做“字节编码”的程序结构,分为小程序(嵌入到HTML文件中)和应用程序(直接在命令状态下执行)两种类型。无论哪种结构,一旦用JAVAC 命令编译后,均变成后缀为CLASS的同名可执行文件。这种文件是不可阅读的代码。

  经查阅了SUN公司的JDK(JDK1.1.3)文档资料后,我找到了一个据称是可反编译JAVA的JAVAP文件(EXE),这个文件位于\JDK\BIN\ 下面,经按说明使用后,感到失望,原来这个“反编译”仅可反编译出JAVA程序的数据区(定义)、若干方法和类的引用等。

  这里我用了一个简单例子来说明问题。

  JAVA的源程序hello_java.java如下:

  import java.applet.*.

  import java.awt.*.

  public class hello_java extends Applet

  {

  public void paint(Graphics g)

  {

  g.drawString("Hello Java!\n",20,20).

  }

  }

  经用反编译命令:javap -c -package -public -private hello_java hello.java

  得到的反编译结果(hello.java)如下:(有关javap命令的选择参数请见其使用说明,这里-c表示选择了反编译)

  Compiled from hello_java.java

  public synchronized class hello_java extends java.applet.Applet

  /* ACC_SUPER bit set */


相关文章


解析Java类和对象的初始化过程Java认证考试
JAVA基础:谨慎使用Date和Time类Java认证考试
课程介绍(1)SL110初级Java语言编程Java认证考试
JAVA实现支持视频点播WEB服务器Java认证考试
谈谈JAVA程序的反编译Java认证考试
Java中静态变量的适用场景Java认证考试
一个简单的java网络爬虫(spider)Java认证考试
通过HttpClient获取响应内容字符集Java认证考试
Java应用中使用ProxoolJava认证考试
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛