Java字符串声明的区别

时间:2015-01-11 12:06:44

标签: java string

在Java 5.0中,以下是什么区别?

1

String variable = "hey";

2

String variable = new String("hey");

2 个答案:

答案 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("..."),则返回对该字符串副本的对象引用。

阅读http://en.wikipedia.org/wiki/String_interning

答案 1 :(得分:0)

第一个只是创建对象的引用。第二个创建一个全新的对象。当您使用==比较两个对象时,会出现差异。 例如:

String variable1 = "hey"; 
String variable = "hey"; 
String variable2 = new String("hey");

比较时:

variable == variable1 //true
variable1 == variable2 //false