两者之间有什么区别
String name1 = "some name";
和
String name1 = new String("some name")
哪个更好,又好用?
谢谢
答案 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