不在permgen的实习字符串?

我在运行的Java应用程序上运行了jmap -heap命令,这就是我得到的:

C:\ Program Files \ Java \ jdk1.7.0_05 \ bin> jmap -heap 2384附加到进程ID 2384,请稍候…调试程序已成功附加。 服务器编译检测到
JVM版本是23.1-b03

在新一代中使用并行线程。
使用线程局部对象分配。
并发Mark-Sweep GC

堆配置:
MinHeapFreeRatio = 40
MaxHeapFreeRatio = 70
MaxHeapSize = 1073741824(1024.0MB)
NewSize = 1310720(1.25MB)
MaxNewSize = 17592186044415 MB
OldSize = 5439488(5.1875MB)
NewRatio = 2
SurvivorRatio = 8
PermSize = 134217728(128.0MB)
MaxPermSize = 201326592(192.0MB)
G1HeapRegionSize = 0(0.0MB)

堆用法:
新一代(伊甸园+ 1幸存者空间):
容量= 228261888(217.6875MB)
used = 203794000(194.3531036376953MB)
free = 24467888(23.334396362304688MB)
89.28078260703775%使用
伊甸园空间:
容量= 202964992(193.5625MB)
used = 198399360(189.2083740234375MB)
free = 4565632(4.3541259765625MB)
97.75053226913141%使用
来自太空:
容量= 25296896(24.125MB)
used = 5394640(5.1447296142578125MB)
free = 19902256(18.980270385742188MB)
21.325304100550518%使用
太空:
容量= 25296896(24.125MB)
used = 0(0.0MB)
free = 25296896(24.125MB)
使用0.0%
并发标记扫描生成:
容量= 506445824(482.984375MB)
used = 159479408(152.09141540527344MB)
free = 346966416(330.89295959472656MB)
31.489924576809226%使用
烫发一代:
容量= 134217728(128.0MB)
二手= 72157448(68.81470489501953MB)
free = 62060280(59.18529510498047MB)
53.76148819923401%使用

96874 interned Strings占用89695496个字节。

所以在Permgen的68mb中似乎有大约89mb的实习字符串。 是否存在未存储在Permgen中的实习字符串?

从Java 7发行说明 :

在JDK 7中,实现的字符串不再分配在Java堆的永久生成中,而是分配在Java堆的主要部分(称为年轻和旧的代)中,以及应用程序创建的其他对象。 此更改将导致更多数据驻留在主Java堆中,并且永久生成中的数据更少,因此可能需要调整堆大小。 由于此更改,大多数应用程序只会看到堆使用中的相对较小的差异,但是加载许多类或大量使用String.intern()方法的较大应用程序将看到更显着的差异。