String testID="";
System.out.println("testID==null"+testID==null);
System.out.println("testID=='':"+testID=="");
System.out.println("testID.equals(null):"+testID.equals(null));
System.out.println("testID.equals(''):"+testID.equals(""));
System.out.println("testID.isEmpty():"+testID.isEmpty());以上是代码相应输出是 
false
false
testID.equals(null):false
testID.equals(''):true
testID.isEmpty():true
把代码String testID="";修改为String testID=null;相应输出则
false
false
有三个问题!一、为何第一段输出文字 第一排第二排没有完整输出。少了testID==null:  和testID=='':二、为何第二段输出文字  第一排第二排也同样没有完整输出。少了testID==null:  和testID=='':  。并且下面第三第四第五拍干脆什么都不显示?三、请逐一解释String testID=""; 和String testID=null; 五个对比,为何输出是false或者true!

解决方案 »

  1.   

    "testID==null"+testID==null 在打印的时候会先做+连接动作,转化成字符串"testID==nulltestID",然后去做"testID==nulltestID"==null,结果当然是false咯,别的就不解释了。
      

  2.   

    你第一个问题
    你的输出其实是这样的
    System.out.println(("testID==null"+testID)==null);
    System.out.println(("testID=='':"+testID)=="");第二个问题
    空指针异常,所以不显示第三个问题
    ==对比的是地址,即引用
    equal对比的是对象