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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 夜默 金牌黑马   /  2013-6-6 21:40  /  1157 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 4968547610317 于 2013-6-6 22:32 编辑

String s1="";
String s2=null;
"" 和null有啥区别
输出的时候"" 是什么都没有
null是输出 null
还有别的吗?

4 个回复

正序浏览
谢了,经常会在小细节上犯迷糊..
回复 使用道具 举报
""是存在方法区常量池的一个常量字符串  他是有地址值标志的 是在内存中开辟空间的  null没有开辟空间 s2是输出null  s1和s2都是栈里面的临时变量  s1里面存放的是""的地址值  s2没有指向任何对象  值就是null
回复 使用道具 举报
""是一个字符串,只是长度为零而已,它在栈内存中有具体的位置,s1里存放指向的它的指针。
而null什么都没有,没有地址,s2里放的是一个空指针。
回复 使用道具 举报
“” 是有分配空间的 只不过这个空间没有任何东西;而null 是个空指针,就没有把S2指向堆内存任何一个地方!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马