什么是 Java 中的字符串常量池?


直接以如下方式存储字符串时,

String str1 = "Hello";

JVM 在一个称为字符串常量池的独立内存块中创建了一个具有给定值的字符串对象。

并且无论何时我们尝试创建另一个字符串,

String str2 = "Hello";

JVM 验证字符串常量池中是否存在任何具有相同值的字符串对象,如果存在,则 JVM 将现有对象引用分配给新变量,而不是创建新对象。

当我们使用如下方式存储字符串时,

String str = new String("Hello");

irrespective of the contents of the String constant pool,将创建一个具有给定值的新对象。

更新时间:30-Jul-2019

686 浏览次数

开启你的职业生涯

完成课程即可获得认证

开始
广告
© . All rights reserved.