黑马程序员技术交流社区

标题: 字符串的问题 [打印本页]

作者: jerom023    时间: 2014-7-31 22:22
标题: 字符串的问题
本帖最后由 jerom023 于 2014-8-1 13:44 编辑

字符串“”(里面没有任何东西,包括空格)和null相等吗?是同一个东西吗?
作者: 李煜    时间: 2014-7-31 23:09
不是同一个东西
作者: 赵顺超    时间: 2014-7-31 23:11
你用equals跟==比较一下,打印一下结果就知道了
作者: 790324255a    时间: 2014-7-31 23:13
你是说""这种情况吗 如果是 这个null是不一样的 不是同一个东西
作者: 南柯一梦    时间: 2014-7-31 23:32
不一样,一个是空字符对象,一个是null对象,-可以是任意类型
作者: 刘小印    时间: 2014-7-31 23:52
null是常量,“”是字符串。
作者: 止询初衷    时间: 2014-7-31 23:55
不等,不是一个东西。
作者: Peach2014    时间: 2014-8-1 00:05
简单的来说,“”是一个对象,在内存中开辟了空间,空间里的值为“”;而null没有开辟空间,指向为空
作者: Moriarty    时间: 2014-8-1 08:05
我猜测,可能是字符串实现的时候有两个部分组成,一部分相当于头部另一部分是字符串实际内容,这个头部应该存储的是这个字符串是否为空,像这个String  a=“”应该是头部是个指针指向实际内容,只是这个实际内容为空字符串,而String a=null即这个头指针指向null,这俩的区别就在于这个头部,这是我认为的。
作者: zippo    时间: 2014-8-1 08:47
不是同一个东西,null是常量啊,""是空的字符串。
作者: 200米王朝    时间: 2014-8-1 09:19
null 是空值。
"" 是空白字符。
作者: s_gd    时间: 2014-8-1 09:20
肯定不一样啊 ""是空字符,是一个字符串,而null代表为空,不存在的意思
作者: .Mч┞尛__洋    时间: 2014-8-1 09:22
不是的   
作者: liqi    时间: 2014-8-1 10:02
可不可以这样理解:“”即 String  a= new String();即a对象,有引用,存了对象的地址,即指向一个对象,对象为空字符串,但也是字符串。
而 String a = null;这个引用类型数据 a 没有指向的地址,为空
作者: 高老强    时间: 2014-8-1 10:10
不一样, ""是盏堆空间都有他的值,只是有的是默认值, 而null就是在堆空间里不指向任何值
作者: 小白马__^o^    时间: 2014-8-1 11:12
不一样,你打印比较一下就知道了!{:2_32:}




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