小编周雪静*_*周雪静的帖子

String.intern() 显示奇怪的结果,它是如何工作的

我知道 String.intern() 将字符串添加到池中,如果它不包含对象,但如何解释结果。

下面的代码:

public static void main(String[] args) {

        char[] abc = new char[]{'a','b','c'};
        String str = new String(abc);
        System.out.println(str == "abc");
        str.intern();
        System.out.println(str == "abc");
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

错误的

错误的

但是当代码如下:

public static void main(String[] args) {

        char[] abc = new char[]{'a','b','c'};
        String str = new String(abc);
        str.intern();
        System.out.println(str == "abc");
    }
Run Code Online (Sandbox Code Playgroud)

输出是:

真的

有什么不同。

java string jvm string-constant intern

3
推荐指数
1
解决办法
60
查看次数

标签 统计

intern ×1

java ×1

jvm ×1

string ×1

string-constant ×1