public class HelloWorld {
    public static void main(String args[]) {
        String s = null;
        s = s+"word";
        System.out.println("hello " +s);
    }
}


对于上面的方法,可能很多人会以为输出是“hello word”。但是,运行后,结果却并不是我们所以为的那样。

运行后的结果是”hello nullword“




s = s+"word"; 等价于 s = String.valueOf(s)+"word";  Integer,Double都一样。




String的源码:


public static String valueOf(Object obj) {
  return (obj == null) ? "null" : obj.toString();
}