易百教程

158、以下 Java 程序的输出是什么?

public class Main {

    public static void main(String args[]) {
        String s1 = "Sharma is a good player";
        String s2 = new String("Sharma is a good player");
        s2 = s2.intern();
        System.out.println(s1 == s2);
    }
}

上面示例代码运行结果为:

true

解释:intern()方法从字符串池返回字符串对象引用。 在这种情况下,s1 是使用字符串文字创建的,而 s2 是使用字符串池创建的。 但是 s2 变成了 s1 的引用,所以操作符 == 返回 true