本帖最后由 翼展哈哈 于 2013-12-10 09:05 编辑
楼主您好,我说一下我个人的理解吧!
“等号左边String s”,声明了一个String类型的引用变量;等号右边的“new String("abc")”,查阅jdk文档,显示:
String(String original)
初始化一个新创建的 String 对象,使其表示一个与参数相同的字符序列;换句话说,新创建的字符串是该参数字符串的副本。
由此可知,您说的两个对象,应该分别是指参数字符串常量“abc”和在堆中新创建的内容也为"abc"的对象实体(即参数字符串常量的副本)。引用变量s指向的当然是后者,即新创建的对象实体,而非字符串常量"abc".因为如果指向字符串常量的话,那就直接把字符串常量的地址值赋给引用变量s就可以了,就没有必要再创建一个具有相同内容的对象实体啦!
希望您的理解,有什么说的不对的,欢迎批评指正!
|