【刷题】Java垃圾回收常见问题

java中垃圾回收有什么目的?什么时候进行垃圾回收?

垃圾回收是在内存中存在没有引用的对象或超过作用域的对象时进行。
垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。

垃圾回收算法:
引用计数算法:
追踪回收算法:
压缩回收算法:
复制回收算法:
按代回收算法:把堆分为多个子堆,每个子堆视为一代,优先收集年幼的对象。如果一个对象经过多次收集仍存活,就把这个对象转移到高一级的堆里,减少对其的扫描次数。

JVM的永久代中会发生垃圾回收么?

会,如果永久代满了或者是超过了临界值,会触发完全垃圾回收(Full GC)。如果你仔细查看垃圾收集器的输出信息,就会发现永久代也是被回收的。这就是为什么正确的永久代大小对避免Full GC是非常重要的原因。请参考下Java8:从永久代到元数据区
(注:Java8中已经移除了永久代,新加了一个叫做元数据区的native内存区)

在Java中,对象什么时候可以被垃圾回收?

当对象对当前使用这个对象的应用程序变得不可触及的时候,这个对象就可以被回收了。

什么是分布式垃圾回收(DGC)?它是如何工作的?

DGC叫做分布式垃圾回收。RMI使用DGC来做自动垃圾回收。因为RMI包含了跨虚拟机的远程对象的引用,垃圾回收是很困难的。DGC使用引用计数算法来给远程对象提供自动内存管理。

猜你喜欢

转载自www.cnblogs.com/anliux/p/12567314.html
今日推荐