我对 java 类文件 (.class) 感兴趣 如果我们使用javap查看.class文件,可以看到常量池信息。
#4 = Utf8 java/lang/Object
#5 = Utf8 <init>
#6 = Utf8 ()V
#7 = Utf8 Code
有索引#1,#2,#3,#4,#5,#6.......
java编译器将会对这些索引进行分类... 索引号的生成有规则吗?是随机数吗?
最佳答案
Is there rules to generate index number?
如果您的意思是指定的规则(在 JVM 规范中),那么答案是否定的。
is it random number?
没有。如果您深入研究编译器源代码等,理论上您将拥有足够的信息来预测常量池条目的索引值。索引的分配看起来是随机的,但(我认为)它是完全确定性和可重复的。
但是,预测任意 Java 程序的索引(不编译它!)不太现实。
关于java - java编译时如何生成常量池索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27525857/