String name1 =“ some name”或String name1 = new String(“ some name”)哪个更好?

时间:2018-06-27 07:53:05

标签: java

两者之间有什么区别

String name1 = "some name";

String name1 = new String("some name")

哪个更好,又好用?

谢谢

1 个答案:

答案 0 :(得分:1)

通常使用String name1 =“ some name”; 但是,如果您希望这些字符串具有不同的引用,请使用新的初始化。

Java对字符串进行了一些优化。 =“”初始化会检查字符串池是否之前已初始化相同的值。

String s1 = "test";
String s2 = "test";
String s3 = new String("test");


s1 == s2 // this is true because of string pool
s1 == s3 // this is false because of s3 is new instance

在上面的示例中,位于字符串池s3的s1和s2在Java字符串池之外。

使用新的字符串会导致创建新实例和更多的内存消耗。

请查看有关字符串池的更多信息:https://www.journaldev.com/797/what-is-java-string-pool