Java垃圾收集器可以随机删除On-Heap层中的对象吗?

Les*_*ura 6 java ehcache

Ehcache的文档指出Heap层受Java垃圾收集的影响(与堆外层和磁盘存储相反).

现在,这是否意味着GC层可以自动删除堆层中的对象?显然,当Ehcache过期或空间不足时,它们会被删除 - 这是一种明确定义的行为.但最重要的是,GC是否可以像这样随机杀死一些物体,甚至不会将它们移到较低层?

Kar*_*cki 5

GC不会收集活动对象,即可从活动线程访问的对象.堆上Ehcache存储中的对象是可访问的,因此不会收集它们.

Ehcache曾经尝试过,WeakReference根据这篇文章,这个想法被放弃了:

我认为这是一个很酷的主意.在生产中,我们的缓存最终看起来像瑞士奶酪,因为元素随机消失.我希望VM能够保留所有元素,并且在内存不足之前才开始丢弃.不是这样.大约8个月前它被删除了,虽然我今天在java doc中提到了一些参考文献.