通过用JAVAP反汇编来帮你理解Java特点[Java编程]
本文“通过用JAVAP反汇编来帮你理解Java特点[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本文通过介绍用Javap反汇编帮你理解Java特点,利用 Javap 深化查看类文件.
Java 开辟人员熟习在一个循环中利用StringBuffer 来替换串通 String 对象能得到最佳性能.但是,大都开辟人员历来没有对比两种办法产生的字节代码的辨别.在 Java 开辟工具包(JDK)中有一个叫做 javap 的工具可以奉告你为什么这样做可以得到最佳性能.
Javap 将一个类和它的办法的一些转储信息输出到尺度输出.该工具不把代码反编译为 java 源代码,但是它会把字节代码反汇编成为由 Java 虚拟机标准定义的字节代码指令.
在你需求查看编译器为你大概给你做了什么的时刻,大概你想要看一处代码的窜改对编译后的类文件有什么影响的时刻,javap 相当有效.
目前以我们前面提到的 StringBuffer 和 String 作为一个例子.下面是一个专门为例子计划的类,它有两个办法,都返回一个由0到 n 的数字构成的 String,此中 n 由调用者供应.两个办法唯一的辨别在于一个利用 String 构建后果,别的一个利用 StringBuffer 构建后果.
public class JavapTip {
public static void main(String []args) {
}
private static String withStrings(int count) {
String s = "";
for (int i = 0; i < count; i++) {
s += i;
}
return s;
}
private static String withStringBuffer(int count) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < count; i++) {
sb.append(i);
}
return sb.toString();
}
}
目前让我们看看对这个类利用–c 选项运行 javap 的输出.-c 选项奉告 javap 反汇编在类中碰到的字节代码.
运行方法以下:
>javap -c JavapTip
此号令的输出为:
Method java.lang.String withStrings(int)
0 ldc #2
2 astore_1
3 iconst_0
4 istore_2
5 goto 30
8 new #3
11 dup
12 invokespecial #4
15 aload_1
16 invokevirtual #5
19 iload_2
20 invokevirtual #6
23 invokevirtual #7
26 astore_1
27 iinc 2 1
30 iload_2
31 iload_0
32 if_icmplt 8
35 aload_1
36 areturn
以上是“通过用JAVAP反汇编来帮你理解Java特点[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |