Java语法:声明字符串时,字符串前面的new
关键字的用途是什么,而不仅仅是分配它。
示例:
String str = new String ("Welcome!");
String strTwo = "Welcome!";
有什么区别?
答案 0 :(得分:1)
new String ("Welcome!")
分配一个新字符串,它是给定字符串的副本。
由于Java字符串是不可变的,因此几乎没有用。
它产生差异的一种情况是新字符串不会是给定字符串的==
。您应该首先将字符串与.equals()
进行比较。
请注意,Java字符串文字被嵌入到所有字符串文字的表中。这样他们共享存储。它还使==
适用于两个字符串文字,但是你应该只在非常特殊的情况下这样做。
大多数情况下,我认为来自C ++的程序员使用new
,因为需要将C字符串文字转换为std::string
对象。