String和new String有什么区别?

时间:2011-05-31 17:14:30

标签: java

  

可能重复:
  What is the purpose of the expression “new String(…)” in Java?

这两个陈述之间有什么区别:

String a1 = new String("abc");

String a2 = "abc";

如果你能说明差异,那就太好了。

1 个答案:

答案 0 :(得分:3)

第一个是创建一个新的String对象;第二个是有效地使用已经存在的(它是在加载类文件时创建的。)几乎没有理由使用String(String)构造函数。

(我说虚拟,因为有一种情况:如果您通过调用String分解巨大的substring()然后丢弃原始文件,则可以节省内存通过使用这个构造函数从子字符串创建新的String。但这确实是一个不起眼的案例。)