三九宝宝网宝宝百科宝宝知识

java反编译

01月25日 编辑 39baobao.com

[在Java中什么意思 Math]该方法返回x的绝对值,x的取值可以是各种类型参数。 Math.abs(x)=|x|;如果参数是非负数,则返回该参数。如果参数是负数,则返回该参数的相反数。 特殊情况是: 如果参数是正零或负零...+阅读

如今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 */

{

public void paint(java.awt.Graphics);

public hello_java();

Method void paint(java.awt.Graphics)

0 aload_1

1 ldc #1

3 bipush 20

5 bipush 20

7 invokevirtual #6

10 return

Method hello_java()

0 aload_0

1 invokespecial #5 ()V>

4 return

}

以下为关联文档:

java核心技术书籍即是版本的问题 原来有包色的<<JAVA核心技术>&gt;,对应的jdk是1.4 现在我看的<<JAVA核心技术>&gt;,对应的是JDK1.5 好像这个书现在出到第八版了,建议还是看第八版的. java 2核心...

我现在在学java有一个名词我不懂什么意思求解 java jdk API 1 6中API=Java Application Programming Interface 就是指JAVA那套基本类库。 没有那套库,没有这套编程接口,你编写应用程序将不是一般地困难。 作为Sun开发的Java程序,用于Java编程...

Java判断日期是否是本日本周本月1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 publicstaticvoidmain(String[] args) { SimpleDateFormat format = newSimpleDateFormat("yyyyMMdd"); Calendar firstDayOfWeek =...

java有没有学习手册谢邀,看的出来,你应该还处于Java学习阶段,本人从事Java研发多年,最开始一直从事软件运维工作,也就是实施工作,后来自己抽时间学习Java转研发工作,现将一些心得分享与你,教你快速学习...

java中的输入与输出引用上面老兄的 写入用setText("string");读数据用getText(); 接下来的示例代码: import java.io.File; import java.io.FileNotFoundException; import java.io.FileWriter; im...

java测试post请求在body里面传递参数怎么设置怎么接收1. 定义一个变量TestObject obj = new TestObject(); 2. 然后把 obj 作为参数传递给一个方法。 3. 如果在这个方法中,只能改变obj指向的这个对象的内容,那就是“值传递”,传过...

java string是什么类型Java中String是一个特殊的包装类数据,有两种创建形式: 1. String s = "abc";2. String s = new String("abc"); 第一种先在栈中创建一个对String类的对象引用变量s,然后去查找"abc"是...

java中关于异常如何处理//除零异常,不做处理 class test{ int devide(int x,int y) {return x/y;} } class TestException{ public static void main(String arg[]) { new test()。 devide(3,0); Sy...

java异常处理应该怎么学异常处理是程序设计中一个非常重要的方面,也是程序设计的一大难点,从C开始,你也许已经知道如何用if...else...来控制异常了,也许是自发的,然而这种控制异常痛苦,同一个异常或者错...

推荐阅读
图文推荐