Java中的字符串池是什么? [复制]

2024-06-25

我对 Java 中的字符串池感到困惑。我在阅读 Java 中的 String 章节时遇到了这一点。请帮助我通俗地理解字符串池实际上是做什么的。


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

    String s = "a" + "bc";
    String t = "ab" + "c";
    System.out.println(s == t);

当编译器优化您的字符串文字时,它会看到s and t具有相同的值,因此您只需要一个字符串对象。这是安全的,因为String在Java中是不可变的。
结果,双方s and t指向同一个对象并节省一些内存。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java中的字符串池是什么? [复制] 的相关文章

随机推荐