黑马程序员技术交流社区

标题: java中的new String的问题 [打印本页]

作者: 陈斌    时间: 2012-2-28 17:20
标题: java中的new String的问题

this.name=neme

this.name=new String(name)
有什么区别?
作者: 雷楚光    时间: 2012-2-28 18:22
this.name=name:只是把name值赋给this.name,name只有一个。
this.name=new String(name):新建一个对象内容为name.

作者: 房宝彬    时间: 2012-2-28 19:03
区别就在于 NAME 的存储位置不一样.

作者: 陈斌    时间: 2012-2-28 19:10
雷楚光 发表于 2012-2-28 18:22
this.name=name:只是把name值赋给this.name,name只有一个。
this.name=new String(name):新建一个对象内 ...

那不是理解为this对象跟String(nane)对象的内容一样、、、但是这两个对象并不相等?
作者: 雷楚光    时间: 2012-2-28 19:41
陈斌 发表于 2012-2-28 19:10
那不是理解为this对象跟String(nane)对象的内容一样、、、但是这两个对象并不相等? ...

怎么可能会一样 this.name只是 this的成员
作者: 闫玉泉    时间: 2012-2-28 20:29
不要被this.name迷惑了。这两个变量的值是一样的,但是引用所指向的位置是不一样的。

作者: xieguanxiong    时间: 2012-3-1 10:02
当name不是字符串形式时,this.name=name,name的值不一定是字符串,而this.name = new String(name),name的值肯定是字符串。
作者: 丁晓宇    时间: 2012-3-1 12:32
好比进了没有售票员的车 ,
1、直接把硬币投进去
2、你把钱给司机 , 司机再投进去

作者: 胡军喜    时间: 2012-3-1 17:22
你用new String(name),是在内存中又创建了一个对象,浪费了内存空间,没必要这样做




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2