Java语法:在声明字符串时,为什么将“new”放在字符串前面而不是简单地分配它

时间:2017-03-15 00:52:09

标签: java string variables

Java语法:声明字符串时,字符串前面的new关键字的用途是什么,而不仅仅是分配它。

示例:

String str = new String ("Welcome!");

String strTwo = "Welcome!";

有什么区别?

1 个答案:

答案 0 :(得分:1)

new String ("Welcome!")分配一个新字符串,它是给定字符串的副本。

由于Java字符串是不可变的,因此几乎没有用。

它产生差异的一种情况是新字符串不会是给定字符串的==。您应该首先将字符串与.equals()进行比较。

请注意,Java字符串文字被嵌入到所有字符串文字的表中。这样他们共享存储。它还使==适用于两个字符串文字,但是你应该只在非常特殊的情况下这样做。

大多数情况下,我认为来自C ++的程序员使用new,因为需要将C字符串文字转换为std::string对象。

相关问题