可能重复:
What is the purpose of the expression “new String(…)” in Java?
这两个陈述之间有什么区别:
String a1 = new String("abc");
和
String a2 = "abc";
如果你能说明差异,那就太好了。
答案 0 :(得分:3)
第一个是创建一个新的String对象;第二个是有效地使用已经存在的(它是在加载类文件时创建的。)几乎没有理由使用String(String)
构造函数。
(我说虚拟,因为有一种情况:如果您通过调用String
分解巨大的substring()
然后丢弃原始文件,则可以节省内存通过使用这个构造函数从子字符串创建新的String
。但这确实是一个不起眼的案例。)