在Java 5.0中,以下是什么区别?
1
String variable = "hey";
2
String variable = new String("hey");
答案 0 :(得分:1)
这是关于堆栈溢出的一个非常常见的问题,这已被标记为重复,因此这个答案可能可以作为答案的参考;其中许多都有相当高的赞成票: -
new String() vs literal string performance
Difference between string object and string literal
What is the difference between "text" and new String("text")?
无论如何,我的2美分,在分配文字时,你创建了对实习字符串的引用,而如果使用new String("...")
,则返回对该字符串副本的对象引用。
答案 1 :(得分:0)
第一个只是创建对象的引用。第二个创建一个全新的对象。当您使用==
比较两个对象时,会出现差异。
例如:
String variable1 = "hey";
String variable = "hey";
String variable2 = new String("hey");
比较时:
variable == variable1 //true
variable1 == variable2 //false