Java字节码类解释

时间:2018-04-28 01:33:58

标签: java bytecode javap

我理解基本的Java字节码指令以及如何从常量池引用字段。 但我无法理解这两行之间的差异:

java/lang/StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
java/lang/StringBuilder.append:(I)Ljava/lang/StringBuilder;  

具体区别是什么?
唯一的变化是括号之间的部分,在第一个中指定一个字符串数组,在第二个中指定一个整数基元 第一个似乎在开始时只调用一次,而第二个在每个新条目调用。

修改
这是实际有关的源代码。我用它来打印一棵树。

System.out.println(String.format("%" + this.indent + "s", "") +  "├──── " + nodeToString(currNode));

其中nodeToString是返回String类型的方法。

感谢启蒙

1 个答案:

答案 0 :(得分:0)

抱歉,我只需要休息一晚 括号中的字段应指示附加的操作数的类型 "%" 是一个字符串,标识是一个整数。
谢谢@Angel Koh,你让我确切地解决了这个问题 对于感兴趣的人来说,这是一个描述StringBuilder的2个不同版本的链接:
http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/StringBuilder.java