在Java中,每个对象在处于死状态时都会被垃圾收集,所以为什么String对象和文字放在不同的内存空间中。
答案 0 :(得分:1)
所以为什么String对象和文字放在不同的内存空间中..
从Java 6开始,所有String文字都放在堆中。
原始文字不在堆上,但值可以存储在堆上的对象中。
类文字在堆上,尽管与类关联的大部分数据仍然存储在Metaspace(以前的Perm Gen)中
他们曾经是独立的(在Perm Gen中)以减少堆集合的负载,但正如你所说,这使得清理String文字更加复杂。