黑马程序员技术交流社区

标题: string str = null 与 string str = “” 有什么区别 [打印本页]

作者: 刘-洋    时间: 2012-11-20 23:06
标题: string str = null 与 string str = “” 有什么区别
本帖最后由 刘-洋 于 2012-11-23 15:40 编辑

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

作者: 张静_90    时间: 2012-11-20 23:32
string str = null 不占用内存空间,不指向任何对象。
string str =""是给它分配一个长度为0的字符串的内存空间
作者: 王震阳老师    时间: 2012-11-20 23:33
第一个创建了一个String的指针(在java中叫引用),该指针为空,即仅仅是个引用,没有指向任何东西。;
第二个创建了一个String 指针,该指针指向一个空字符串对象。
作者: 申延超    时间: 2012-11-20 23:45
null表示不引用任何对象的空引用,int i = null 是不可以的 因为int是值类型  string是引用类型,string str=null 就相当于定义了个string类引用,
没有指向任何东西,而 string str = “”  就相当于一个特殊的字符串,这个字符串的值为空
作者: 王新阳    时间: 2012-11-21 00:29
一个是什么都没有,一个是空字符串,你定义了一个变量的引用str

string str=null 把这个引用指向了一个null,没有地址没有值的地方。。
string str="" 把这个引用指向了一个地址,地址里面存的是空的字符。。
作者: 韩温华    时间: 2012-11-21 16:40
string str=null 是什么都没有,没有分配任何的内存空间,没有对应的值
string str=""是赋给了str一个空字符串,并分配了相应的内存空间
作者: 李孟瞧    时间: 2012-11-21 16:58
string str = null 没有给str分配地址,str没有值
string str = “”    中str有值,但这个值是空的




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