两根弦 - 什么更好?

时间:2013-11-24 19:09:26

标签: java performance

我对旧代码进行了大量的重构,我注意到我已经用两种方式创建了字符串:

第一种方式 - 使用新的运算符:

String stringA = new String ("String A");

第二种方式 - 使用文字:

String stringB = "String B";

有谁可以解释哪种方式更好,为什么?

1 个答案:

答案 0 :(得分:7)

简而言之:更好的方法是第二句话

<强>解释
String在Java中是不可变的。关于如果对象在不可变的情况下总是可以重用的事实,你应该总是避免使用first语句,因为这个语句总是在执行时不必要地创建一个新的String实例。

而不是这样,你应该总是使用第二个语句,因为它使用单个String实例,并保证该对象将被重用。

我强烈推荐Joshua Bloch撰写的有效Java,第二版。 您可以在此找到更多关于您的问题和一些基准测试结果的信息 - Effective Java - Same method invocation time despite creating multiple instances

我希望事实有用。