黑马程序员技术交流社区

标题: 关于字符串的null值问题 [打印本页]

作者: 紫衣侯    时间: 2013-6-8 21:20
标题: 关于字符串的null值问题
本帖最后由 紫衣侯 于 2013-6-9 19:08 编辑

               String a = null;
                //System.out.println(a.length());
           a= a+null;
           System.out.println(a.length());
null不是代表空值吗,也就是没有数据。为什么 a=a+null;之后竟然成为字符串?
作者: 逝者轨迹    时间: 2013-6-8 21:43
String a = null;是吧a的地址指向空,但是NULL本身对应一个内存编码,所以当a= a+null;就是把null值赋给了a。说的不够清楚,但是大致意思就是这样吧
作者: luckwei    时间: 2013-6-9 08:18
System.out.println(a.length);运行会报NullPointerException,a = a+null;System.out.println(a.length);的到的结果是8,迷茫吧,其实jvm所做的是,
a = new StringBuilder(String.valueOf(a)).append(String.valueOf(null)).toString();返回nullnull一个null是4位,两正好是8。
作者: 袁梦希    时间: 2013-6-9 15:15
楼主你好  如果帖子的问题已经解决,请把帖子的类型改为“已解决”。{:soso_e102:}




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