rt;
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:"+str==null?"null":str.length());
结果:0
System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:"+(str==null?"null":str.length()));
结果:@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:0
jdk:1.5.0_15

解决方案 »

  1.   

    System.out.println("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:"+str==null?"null":str.length()); 
    这里+号运算符是操作级别最高的,所以先执行+
    ("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:"+str == null 
    显然是不等于null, 所以输出str.length()
      

  2.   

    str.length() 应该是等于0
    后面的例子你自己应该会了吧,我就不多说了
      

  3.   

    "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@str:"+str = a new String
      

  4.   

    如前面申明了个String变量str,没有付值的话在内存中就几经存在了该变量的空间,只是里面没有内容。并不是不存在。