为什么我不应该用构造函数实例化一个字符串对象?

dan*_*007 5 java

显然,在Java中,String s = "foo"首选String s = new String("foo").

为什么?在这两种情况下都不是创建新的字符串对象吗?为什么第一种情况会阻止调用构造函数?

Oli*_*rth 9

为什么?

因为第二种方法导致两个字符串对象(原始由于字符串文字,加上一个显式副本).