6
用Java将final声明为==的字符串进行比较
我有一个关于Java字符串的简单问题。以下简单代码段仅连接两个字符串,然后将它们与进行比较==。 String str1="str"; String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); 比较表达式concat=="string"返回false那么明显(I明白之间的差值equals()和==)。 当这样声明这两个字符串时final, final String str1="str"; final String str2="ing"; String concat=str1+str2; System.out.println(concat=="string"); 比较表达式concat=="string"在这种情况下返回true。为什么final有所作为?它与实习生池有关系吗?还是我被误导了?