Java 中的 String s1 = "Hello" 和 String s1= new String("Hello") 有什么区别?


当您按以下方式直接存储一个字符串时,

String str1 = "Hello";

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



并且每当我们尝试按以下方式创建另一个字符串时,

String str2 = "Hello";

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

而当我们按以下方式存储字符串时,

String str = new String("Hello");

使用 new 关键字会创建一个具有给定值的新对象,而不管字符串常量池的内容如何。

更新于: 19-2020

3K+ 查看

开启您的 职业生涯

完成课程并获得认证

开始
广告
© . All rights reserved.