当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:16:00  来源:本站整理

通过用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编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 通过用JAVAP反汇编来帮你理解Java特点
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .