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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 刘-洋 于 2012-11-23 15:40 编辑

string str = null 与 string str = “”  有什么区别呢

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

6 个回复

倒序浏览
string str = null 不占用内存空间,不指向任何对象。
string str =""是给它分配一个长度为0的字符串的内存空间

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
第一个创建了一个String的指针(在java中叫引用),该指针为空,即仅仅是个引用,没有指向任何东西。;
第二个创建了一个String 指针,该指针指向一个空字符串对象。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
null表示不引用任何对象的空引用,int i = null 是不可以的 因为int是值类型  string是引用类型,string str=null 就相当于定义了个string类引用,
没有指向任何东西,而 string str = “”  就相当于一个特殊的字符串,这个字符串的值为空

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
一个是什么都没有,一个是空字符串,你定义了一个变量的引用str

string str=null 把这个引用指向了一个null,没有地址没有值的地方。。
string str="" 把这个引用指向了一个地址,地址里面存的是空的字符。。

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
string str=null 是什么都没有,没有分配任何的内存空间,没有对应的值
string str=""是赋给了str一个空字符串,并分配了相应的内存空间

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
string str = null 没有给str分配地址,str没有值
string str = “”    中str有值,但这个值是空的

评分

参与人数 1技术分 +1 收起 理由
张文 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马