我对旧代码进行了大量的重构,我注意到我已经用两种方式创建了字符串:
第一种方式 - 使用新的运算符:
String stringA = new String ("String A");
第二种方式 - 使用文字:
String stringB = "String B";
有谁可以解释哪种方式更好,为什么?
答案 0 :(得分:7)
简而言之:更好的方法是第二句话。
<强>解释强>
String在Java中是不可变的。关于如果对象在不可变的情况下总是可以重用的事实,你应该总是避免使用first语句,因为这个语句总是在执行时不必要地创建一个新的String实例。
而不是这样,你应该总是使用第二个语句,因为它使用单个String实例,并保证该对象将被重用。
我强烈推荐Joshua Bloch撰写的有效Java,第二版。
您可以在此找到更多关于您的问题和一些基准测试结果的信息 -
Effective Java - Same method invocation time despite creating multiple instances。
我希望事实有用。