我是要问输出结果 第一个为什么不显示str1==str 而只有一个FALSE?
你们试一试看看那

解决方案 »

  1.   

    "str1==str "+str1 这个字符串 != str2
    鉴定完毕
      

  2.   

    注意+的优先级比==高。
    System.out.println("str1==str "+str1==str2); 
    修改为
    System.out.println("str1==str "+(str1==str2)); 
      

  3.   

    。无语了
    为什么只有一个FALSE?为什么?
    前面的不显示 字符串不相等
    不显示FALSE还显示什么呢
      

  4.   

      System.out.println("str1==str "+str1==str2); 字符串是不能这样比的 。这样比的是str1 和 str2的 内存地址。。
    这两个字符串的内存地址是不是一样的所以出 flase.不然你认为 为什么会有 equals这个方法?
      

  5.   


    public class Test 

    public static void main(String[] args) 

          String str1=new String("abc"); 
          String str2=new String("abc"); 
          System.out.println("str1==str "+(str1==str2)); 
          System.out.println("str1.equals(str2) "+str1.equals(str2)); 

    }这样写正解!~~
      因为 当你执行到"str1==str "+str1
      时  当前的字符串就是"str1==str abc"
      当然就不等于str2了
      所以就是 false了
      lz照上执行就可以了
      

  6.   

    ==用在字符串中是比较对应的字符串对象的地址,而不是值。
    这样可以显示两者相等:System.out.println("str1==str2"+str1+"=="+str2);