String比较? 用==判断两个字符串,有时为true有时为false

昨天在技术交流群发现一个问题,自己试了一下,也没找到原因。 代码如下

    public static void main(String[] args) {
        String str1 = new String("ja1") + new String("va");
        str1.intern();
        String str2 = "ja1va";
        System.out.println("判断结果" + (str1 == str2));
    }

输出结果:

结果为true
现在来改变变量的值

结果为false,为毛?

莫非java是关键字,继续改变量值
莫非“zhongguo” 也为关键字,不可能吧,继续改:

经过反复多次的尝试,发现只有当 值为“java” 的时候输出为false

改变成其它值都为true,疑惑了,有谁知道原因么?

猜你喜欢

转载自my.oschina.net/u/2301293/blog/1920757