通过用JAVAP反汇编来帮你理解Java特性
文章作者 100test 发表时间 2007:06:08 11:54:19
来源 100Test.Com百考试题网
本文通过介绍用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 反汇编在类中遇到的字节代码。
src="/linux/js/wxgg_linux.js">