String a ="ab";
        String b="a"+"b";
        String c = "a";
        String d = c.concat("b");
        System.out.println(a == b);
        System.out.println(d.equals("ab"));如果死System.out.println(d =="ab")的话返回的是false
why???

解决方案 »

  1.   

    字符串d 与字符串“ab”明显不是指向同一个地址,所以“==”是false,但如果是
    d.equals("ab"),那么是true。
    在字符串中,“==”是比的地址,equals是比的值。
      

  2.   

    d=="ab" ==比较的是引用的地址, String类重写了Object的equals方法, 去看API吧
      

  3.   

    我知道比较的是地址,我的意思是 "a".concat("b")返回的字符串“ab”是放在String常量池中,还是堆内存中