使用==比较2个字符串有效吗?

时间:2019-04-30 20:02:19

标签: java string comparison string-comparison

我不确定这是否是一个重复的问题(我找不到类似的东西),但是我已经在两个不同的IDE中对两个具有相同值的独立字符串使用==运算符进行了测试,工作了吗我对以下代码片段特别困惑:

    public static void main(String args[]) {
        String s1 = new String("aaab");
        String s2 = new String("aaa");
        System.out.println(Integer.toHexString(s1.hashCode()));
        System.out.println(Integer.toHexString(s2.hashCode()));

        s2 += "b";
        System.out.println(Integer.toHexString(s1.hashCode()));
        System.out.println(Integer.toHexString(s2.hashCode()));

        Boolean b = s1==s2;
        System.out.println(s1==s2);
        System.out.println(b);
        if (s1.equals(s2)){
            System.out.println("this works");
        }
    }

(对不起,如果我的格式有点烂) 对我来说,控制台输出是

2d9041
17841
2d9041
2d9041
false
false
this works

(我知道不同的人的内存地址可能有所不同,关键是两者之间的相似性)这个输出对我来说没有意义? s1 == s2是否应该因为内存地址相同而返回true?这是OS / Windows吗?还是IDE的东西?抱歉,问题很长,谢谢您的回答

0 个答案:

没有答案