java - String pool创建在Heap的PermGen区或Object区

标签 java string jvm java-memory-model

HERE , 作者是说

3) String pool is created in PermGen area of Heap, garbage collection can occur in perm space but depends upon JVM to JVM. By the way from JDK 1.7 update, String pool is moved to heap area where objects are created.

这样做有什么具体原因吗?我无法在网上找到任何内容。这意味着什么?

最佳答案

迁移到元空间是必要的,因为 PermGen 真的很难调整。

此外,很难确定 PermGen 的大小,因为大小取决于很多因素,例如类的总数、常量池的大小、方法的大小等。

此外,HotSpot 中的每个垃圾收集器都需要专门的代码来处理 PermGen 中的元数据。从 PermGen 中分离元数据不仅允许无缝管理元空间,而且还允许进行改进,例如简化完整垃圾收集和类元数据的 future 并发解除分配。

关于java - String pool创建在Heap的PermGen区或Object区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28107739/

相关文章:

java - 为什么不能在方法中采用多个可变参数参数?

java - 在 Eclipse 外部运行主 Java 应用程序

java - Scala 中隐藏的性能成本?

java - 改造 RecyclerView 在选项卡布局中不起作用

java - 如何在另一个注释中创建和使用具有给定日期的 DateFormat?

python - 查找字符后的最后一个子字符串

php - 如何使用正则表达式 PHP 查找字符串中的数字

java.net.BindException :JVM Bind

java - Selenium 显示错误 "The method sendKeys(CharSequence[]) in the type WebElement is not applicable for the arguments (String)"

java - 使用 MySQL 数据库中的数据填充 LocalDateTime 数组时遇到问题