为什么String对象和文字的内存空间在JVM中是分开的?

时间:2016-10-10 10:57:03

标签: java jvm

在Java中,每个对象在处于死状态时都会被垃圾收集,所以为什么String对象和文字放在不同的内存空间中。

1 个答案:

答案 0 :(得分:1)

  

所以为什么String对象和文字放在不同的内存空间中..

从Java 6开始,所有String文字都放在堆中。

原始文字不在堆上,但值可以存储在堆上的对象中。

类文字在堆上,尽管与类关联的大部分数据仍然存储在Metaspace(以前的Perm Gen)中

他们曾经是独立的(在Perm Gen中)以减少堆集合的负载,但正如你所说,这使得清理String文字更加复杂。