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