字符串是Java中的对象,那么为什么不使用'new'创建它们呢?
我们通常使用new
关键字创建对象,例如:
Object obj = new Object();
字符串是对象,但是我们不能new
用来创建它们:
String str = "Hello World";
为什么是这样?我可以用做一个琴弦new
吗?
回答:
除了已经说过的内容外,Java中的字符串文字(即像Java 一样"abcd"
但不喜欢的字符串)new String("abcd")
是经过内插的-这意味着,每次引用“ abcd”
时,你都将引用一个String实例,而不是一个新实例。每一次。因此,你将拥有:
String a = "abcd";String b = "abcd";
a == b; //True
但是如果你有
String a = new String("abcd");String b = new String("abcd");
那么就有可能
a == b; // False
(如果有人需要提醒,请务必使用.equals()
比较字符串;==
测试物理相等性)。
Interning String文字很好,因为它们经常被使用多次。例如,考虑(人为)代码:
for (int i = 0; i < 10; i++) { System.out.println("Next iteration");
}
如果没有String的内部,则“下一次迭代”将需要实例化10次,而现在只需要实例化一次。
以上是 字符串是Java中的对象,那么为什么不使用'new'创建它们呢? 的全部内容, 来源链接: utcz.com/qa/430540.html