Java反编译

《Thinking in java 》的Chapter13章,发现其中说到字符串的内容。String对象是一次性的,不可变的。直接上例子:

public class Immutable {
public static String upcase (String s)//将一串字符转换成大写
{
    return s.toUpperCase();
}
public static void main(String [] args)
{
    String q = "howdy";
    System.out.println(q);

    // String qq = upcase (q);
    // System.out.println(qq);

    System.out.println(upcase (q));
    //这样的例子更能说明问题

    System.out.println(q);
    //为了证明q本身并没有改变,只是从新创建了一个全新的String对象
    }
}

//本例即证明String对象是一次性的,永久的。而下面的例子则可以使用Javap反编译来研究。

public class Concatenation {
    public static void main(String [] args )
    {
        String mango = "mango";
        String s = "abc"+ mango + "49";
        System.out.println(s);
    }
}

下面我们来谈谈怎么使用javap反编译

1.首先使用win+r打开DOS窗口,在自己安装JDK的路径下输入javap得到以下的页面

Java反编译_反编译

2.将自己所写的代码以及编译文件[注:.class]放到DOS页面指示的那个文件夹下。小编的编译如下:

Java反编译_C_02

3.这样我们就得到了javap的反编译文件啦。