Java中以下两种初始化有什么区别?
String a = new String();
String b = new String("");
最佳答案
嗯,它们几乎一样。
public static void main(String[] args) {
String s1 = new String();
String s2 = new String("");
System.out.println(s1.equals(s2)); // returns true.
}
细微差别(相当微不足道):
new String();
的执行时间比new String("");
少,因为复制构造函数做了很多事情。new String("")
如果空字符串 (""
) 尚不存在,则将其添加到字符串常量池中。
除此之外,没有其他区别
注意:new String("abc")
的使用几乎总是不好的,因为您将创建 2 个字符串,一个在字符串常量池上,另一个在堆上具有相同的值。
关于java - Java 中由 new String() 和 new String (""进行的字符串初始化有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29535409/