您的位置:首页 > 编程语言 > Java开发

java中对null值的处理

2016-04-01 10:31 357 查看
今天和朋友在群里交流 碰见一个问题  

java中 null+"a" =nulla;  很诡异的问题

网上查了查 ,一些懂得java源码的大神给了些解释;

这不是JVM的作用是Java编译器把这段重构了,反编译一下就看得出是

      new java.lang.StringBuilder [16]

       dup

       aload_1 [str1]

       invokestatic java.lang.String.valueOf(java.lang.Object) : java.lang.String [18]

      invokespecial java.lang.StringBuilder(java.lang.String) [24]

看得出跟下面是一样的

 new StringBuilder(

        String.valueOf(str1)

        );

而你在看String.valueOf方法是这样的

public static String valueOf(Object obj) {

        return (obj == null) ? "null" : obj.toString();

    }

。因此Stringbuilder 最终构造的是一个 "null"字符串
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: