从这里中可以清楚地看出,构成String的实际字符实际上存储在private final char value[];字符数组中。
有人能帮我理解表达式String text = "Hello World";的下列问题吗?
String文字。如果是这样的话,字符串对象和字符串文本之间的区别到底是什么,因为两者都必须由char[]来支持。Runtime Constant Pool中的Method Area中吗?char[] value仅在堆上创建。因此,当对使用intern()运算符创建的String对象调用new方法时,会将什么复制到StringPool (假设它不是字符数组)?编辑:
如前所述,这里将StringPool实现为HashMap。那么,同样的关键和价值是什么呢?该值似乎不能是char[] value,因为相同的值是在堆上创建的。
发布于 2018-04-11 16:59:51
这方面没有专家,但我会试一试。
String text = "Hello World";


lcd(load a常数)在常量池表中查找字符串。发现#2,地址为"Hello Word“,地址是#14
参考资料:Java常量池的用途是什么?
参考资料:字节码/操作码
https://stackoverflow.com/questions/49779669
复制相似问题