开发者社区> 问答> 正文

什么是String Pool

Java里的String池是什么?

展开
收起
YDYK 2020-04-23 19:54:13 833 0
2 条回答
写回答
取消 提交回答
  • 如果你注意旧版本substring方法的实现 你就会发觉JDK开发者想尽一切办法减少通过拷贝原本字节数组重建字符串对象的行为发生基于上一种"共享"的方式带来的问题是子字符串依赖原始字符串导致原始字符串资源不会被释放掉(比如"abc"字符串你通过substring(1)得到"bc" 可实际他依赖的还是旧的引用) 所以有的时候要强制拷贝一份"内容"创建新的字符串对象 至于string pool 如果指定对象已经存在于string pool中 可以让对象被回收的时间提前(通过直接饮用string pool中的字符串 提前释放掉对原始字符串的引用)

    2020-04-23 20:06:55
    赞同 展开评论 打赏
  • Java String Pool是指存储在堆内存中的字符串的集合。 在这种情况下,无论何时创建新对象,字符串池都会首先检查对象是否已存在于池中。 如果存在,则将相同的引用返回到变量,否则将在字符串池中创建新对象,并将返回相应的引用。

    2020-04-23 19:54:45
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载