首页 > 解决方案 > Java == 的字符串对象为真

问题描述

在 1.8 (JRE 1.8.0_221) 中,这种比较似乎在以前比较两个对象的地方==不应该相同?这是Java优化掉一个变量的情况还是发生了其他事情?

public class example
{
    public static void main(String[] args)
    {
        String str1 = "hi";
        String str2 = "hi";

        System.out.println(str1.hashCode());
        System.out.println(str2.hashCode());

        if (str1 == str2)
        {
            System.out.println("wut");
        }
    }
}

输出:

3329
3329
wut

标签: javaoptimization

解决方案


推荐阅读