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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jerom023 中级黑马   /  2014-7-31 22:22  /  1952 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 jerom023 于 2014-8-1 13:44 编辑

字符串“”(里面没有任何东西,包括空格)和null相等吗?是同一个东西吗?

15 个回复

倒序浏览
不是同一个东西
回复 使用道具 举报
赵顺超 来自手机 中级黑马 2014-7-31 23:11:06
藤椅
你用equals跟==比较一下,打印一下结果就知道了
回复 使用道具 举报
你是说""这种情况吗 如果是 这个null是不一样的 不是同一个东西
回复 使用道具 举报
不一样,一个是空字符对象,一个是null对象,-可以是任意类型
回复 使用道具 举报
null是常量,“”是字符串。
回复 使用道具 举报
不等,不是一个东西。
回复 使用道具 举报
简单的来说,“”是一个对象,在内存中开辟了空间,空间里的值为“”;而null没有开辟空间,指向为空
回复 使用道具 举报
我猜测,可能是字符串实现的时候有两个部分组成,一部分相当于头部另一部分是字符串实际内容,这个头部应该存储的是这个字符串是否为空,像这个String  a=“”应该是头部是个指针指向实际内容,只是这个实际内容为空字符串,而String a=null即这个头指针指向null,这俩的区别就在于这个头部,这是我认为的。
回复 使用道具 举报
不是同一个东西,null是常量啊,""是空的字符串。
回复 使用道具 举报
null 是空值。
"" 是空白字符。
回复 使用道具 举报
肯定不一样啊 ""是空字符,是一个字符串,而null代表为空,不存在的意思
回复 使用道具 举报
不是的   
回复 使用道具 举报
可不可以这样理解:“”即 String  a= new String();即a对象,有引用,存了对象的地址,即指向一个对象,对象为空字符串,但也是字符串。
而 String a = null;这个引用类型数据 a 没有指向的地址,为空
回复 使用道具 举报
不一样, ""是盏堆空间都有他的值,只是有的是默认值, 而null就是在堆空间里不指向任何值
回复 使用道具 举报
不一样,你打印比较一下就知道了!{:2_32:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马