use*_*425 22 java string initialization
Java中的以下两个初始化之间有什么区别?
String a = new String();String b = new String("");The*_*ind 20
嗯,它们几乎是一样的.
public static void main(String[] args) {
String s1 = new String();
String s2 = new String("");
System.out.println(s1.equals(s2)); // returns true.
}
Run Code Online (Sandbox Code Playgroud)
微小的差异(相当微不足道):
new String();执行所花费的时间少于new String("");复制构造函数执行的操作.
new String("")将空String("")添加到String常量池(如果它尚不存在).
除此之外,没有其他差异
注意:使用new String("abc")几乎总是坏的,因为您将在String常量池上创建2个字符串,在堆上创建具有相同值的另一个字符串.