Java 中字符串常量池的默认大小是多少?



我想了解字符串常量池是否有任何默认大小?

Java 上不同版本的字符串常量池是否有任何变化? 字符串常量池的默认大小是多少?

根据本文,字符串常量池大小因不同的 Java 版本和发行版而异(但文章本身已有 3 年多的历史,因此从那时起可能对最新的 Java 版本进行了一些更改(。

字符串池作为 HashMap 实现。所以

  1. Java 6之前,默认池大小为 1009 个条目,并受 PermGen 大小的限制,PermGen 大小在 Java6u30 发行版中变得可配置。
  2. Java 7中,默认哈希表大小增加到 60013 个条目,并且仍可使用标志-XX:StringTableSize=<value>进行配置。
  3. Java 8中,PermGen区域被删除,常量池被移动到堆中,使其大小仅受程序内存限制的限制(并且它仍然接受表大小选项(。

在大多数JVM中,Perm Space的默认大小约为"64MB"。

最新更新