A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 陈斌 中级黑马   /  2012-2-28 17:20  /  2968 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文


this.name=neme

this.name=new String(name)
有什么区别?

9 个回复

倒序浏览
this.name=name:只是把name值赋给this.name,name只有一个。
this.name=new String(name):新建一个对象内容为name.
回复 使用道具 举报
区别就在于 NAME 的存储位置不一样.
回复 使用道具 举报
雷楚光 发表于 2012-2-28 18:22
this.name=name:只是把name值赋给this.name,name只有一个。
this.name=new String(name):新建一个对象内 ...

那不是理解为this对象跟String(nane)对象的内容一样、、、但是这两个对象并不相等?
回复 使用道具 举报
陈斌 发表于 2012-2-28 19:10
那不是理解为this对象跟String(nane)对象的内容一样、、、但是这两个对象并不相等? ...

怎么可能会一样 this.name只是 this的成员
回复 使用道具 举报
不要被this.name迷惑了。这两个变量的值是一样的,但是引用所指向的位置是不一样的。
回复 使用道具 举报
当name不是字符串形式时,this.name=name,name的值不一定是字符串,而this.name = new String(name),name的值肯定是字符串。
回复 使用道具 举报
好比进了没有售票员的车 ,
1、直接把硬币投进去
2、你把钱给司机 , 司机再投进去
回复 使用道具 举报
你用new String(name),是在内存中又创建了一个对象,浪费了内存空间,没必要这样做
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马