Java中的字符串池是什么?

我对Java中的StringPool感到困惑。我在阅读Java中的String一章时遇到了这个问题。用外行的术语,请帮助我了解StringPool的实际作用。

回答:

打印true(即使我们不使用equals方法:比较字符串的正确方法)

    String s = "a" + "bc";

String t = "ab" + "c";

System.out.println(s == t);

当编译器优化你的字符串文字时,它会看到两者s和t具有相同的值,因此你只需要一个字符串对象。这是安全的,因为StringJava中是不可变的。

结果,两者s和都t指向同一个对象,节省了一些内存。

名称“字符串池”的想法是,所有已经定义的字符串都存储在某个“池”中,并且在创建新的String对象编译器之前检查是否已经定义了这样的字符串。

以上是 Java中的字符串池是什么? 的全部内容, 来源链接: utcz.com/qa/413175.html

回到顶部