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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 天佑の清清 于 2014-6-26 18:04 编辑

string str=""; string str=null;
请问这俩本质上有什么区别?  虽然明白这俩不同,但是还是有点不清楚这俩到时候根本上是什么区别?

评分

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

查看全部评分

5 个回复

倒序浏览
简单点的
string str="",表示一个空串,被实列化了,占用了内存空间
string str=null,表示一个空引用,没有占用了空间
有时候还有个string str。 这是一个定义,最好初始化成 string str = string.Empty

评分

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

查看全部评分

回复 使用道具 举报
1 string str=null;
这句话的意思:定义了 引用变量str,不过 str 引用的字符串对象为空。
2 string str="";
这句话的意思:定义了 引用变量str,并且 str 引用的字符串对象存在,其内容为""
回复 使用道具 举报
string str=null; 指向的地址为0x0000, (视频讲解为还没占内存,那么这个地址是代表什么呢?)
string str="", 是有地址的,说明已经创建了存储空间
二楼说的这个string str = string.Empty; 是不是也就是string str=null; 的比较正规的一种写法
回复 使用道具 举报
前者在内存上预留空间了,只不过里面什么都没,后者没有预留,
回复 使用道具 举报

string str="",分配空间占用内存,里面没有东西
string str=null,表示一个空引用,没有占用了空间
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马