首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java 8中的字符串池

java 8中的字符串池
EN

Stack Overflow用户
提问于 2017-02-15 18:48:49
回答 4查看 10K关注 0票数 10

我读到了关于java8中的内存管理,它谈到了元空间,但它没有谈到字符串池,请告诉我在java8中字符串池发生了什么。

提前谢谢。拉杰什

EN

回答 4

Stack Overflow用户

发布于 2017-02-15 18:57:00

在java7本身已经做了改变,常量池已经从permgen空间移动到典型的堆空间(池行为仍然是相同的),在Java8中完全删除了permgen空间。元空间与常量池无关,特别是它对所有对象都是通用的。

票数 15
EN

Stack Overflow用户

发布于 2020-07-02 01:31:19

字符串池的概念没有任何变化,但从Java7开始,字符串池是在堆内存中创建的,而不是permgen。这样做的好处是字符串池中的未引用变量将由JVM垃圾收集器处理。因此,它将随着空间的推移而提高。

票数 2
EN

Stack Overflow用户

发布于 2022-01-08 09:31:31

当我们使用new()操作符创建一个String对象时,它总是在堆内存中创建一个新对象。另一方面,如果我们使用字符串文字语法创建一个对象,如果它已经存在,Java编译器将简单地从字符串池返回对其内存地址的引用,而不分配额外的内存。否则,它将创建一个新的String对象,并将其放入字符串池中以供将来重用。

有关更多信息,请阅读以下内容:

https://www.baeldung.com/java-string-pool

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42247199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档