黑马程序员技术交流社区

标题: string str=""; string str=null; 请问这俩本质上有什么区别? [打印本页]

作者: 天佑の清清    时间: 2014-6-26 15:49
标题: string str=""; string str=null; 请问这俩本质上有什么区别?
本帖最后由 天佑の清清 于 2014-6-26 18:04 编辑

string str=""; string str=null;
请问这俩本质上有什么区别?  虽然明白这俩不同,但是还是有点不清楚这俩到时候根本上是什么区别?
作者: 向晓伟    时间: 2014-6-26 17:06
简单点的
string str="",表示一个空串,被实列化了,占用了内存空间
string str=null,表示一个空引用,没有占用了空间
有时候还有个string str。 这是一个定义,最好初始化成 string str = string.Empty
作者: 小郭zaiheima    时间: 2014-6-27 22:17
1 string str=null;
这句话的意思:定义了 引用变量str,不过 str 引用的字符串对象为空。
2 string str="";
这句话的意思:定义了 引用变量str,并且 str 引用的字符串对象存在,其内容为""
作者: 专属第三    时间: 2014-6-27 22:46
string str=null; 指向的地址为0x0000, (视频讲解为还没占内存,那么这个地址是代表什么呢?)
string str="", 是有地址的,说明已经创建了存储空间
二楼说的这个string str = string.Empty; 是不是也就是string str=null; 的比较正规的一种写法
作者: 别问我是谁    时间: 2014-6-28 09:29
前者在内存上预留空间了,只不过里面什么都没,后者没有预留,
作者: yangjijin    时间: 2014-6-28 09:44

string str="",分配空间占用内存,里面没有东西
string str=null,表示一个空引用,没有占用了空间




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