黑马程序员技术交流社区

标题: String类的null问题 [打印本页]

作者: 金樽月    时间: 2015-10-5 17:54
标题: String类的null问题
大家都知道String是一个类。那么
String str = "a";
str = null;
System.ou.print(str);
str都已经是垃圾了,。可是控制台怎么会输出null,而不是NullPointerException呢?
作者: 流觞曲水    时间: 2015-10-5 18:06
str=null后,将不再指向对应的字符串,只有当str调用方法时才会出现空指针异常
作者: 然子    时间: 2015-10-5 18:38
null和空字符串并不是同一个概念。
空字符串长度为0,可以通过if (str.length() == 0) 或 if (str.equals(""))判断。
而null则是通过if (str == null) 判断,null是一个特别的值。

如果要判断字符串是不是既不是null,也不是空,需要先判断是不是null。
if (str != null && str.length() != 0)
不然会出现异常。

作者: 金樽月    时间: 2015-10-5 19:37
流觞曲水 发表于 2015-10-5 18:06
str=null后,将不再指向对应的字符串,只有当str调用方法时才会出现空指针异常 ...

没办法,很穷。。。。。
还是谢谢你,终于解决了。
作者: 金樽月    时间: 2015-10-5 19:39
然子 发表于 2015-10-5 18:38
null和空字符串并不是同一个概念。
空字符串长度为0,可以通过if (str.length() == 0) 或 if (str.equals(" ...

看你写了这么,不赞一个实在不好意思
不过你明显没有看明白我的问题,上层戳中了。。。
作者: wx_HWRW5aF7    时间: 2015-10-5 19:59
null是一个常量,并且这个常量是放在方法区中的常量池中




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