public class TestString { public static void main(String[] args) {
String s1 = "a"; 
String s2 = "b"; 
String str = s1 + s2;
System.out.println(str1 == "ab");
}}为什么打印出false?
谢谢大家了

解决方案 »

  1.   

    你确定你得代码能通过编译str1 在哪边
      

  2.   

    如果是str1 == "ab",==比较是否是同一个对象,equals比较的是String的值
      

  3.   

    String是对象,比较应该使用equals吧。
      

  4.   

     你用 == 比较的是 是否是同一个对象,当然是false咯 还有你的str1从哪儿来的。
      

  5.   


    不好意思啊  我写错了  应该是这样的代码:public class TestString {public static void main(String[] args) {
    String s1 = "a"; 
    String s2 = "b"; 
    String str = s1 + s2;
    System.out.println(str == "ab");
    }}
      

  6.   

    == 比较的是地址引用,不是比较内容,所以是false
    str.equals("ab")比较的是内容,答案是true