一尘不染

Java垃圾回收背后的理论和算法

java

我在很多地方读书,但是没有找到我可以了解的地方:

什么是Java垃圾回收?

如何实施?

什么时候以及如何称呼它?

为了回收内存,如果遵循什么算法?

简而言之:

固定!!!

一篇很好的文章:http :
//www.artima.com/insidejvm/ed2/gcP.html


阅读 178

收藏
2020-12-03

共1个答案

一尘不染

答案的简短版本是:

什么是Java垃圾回收?

GC是一种内存管理机制,系统(在本例中为JVM)负责自动回收不再使用的内存。

如何实施?

有多种实现方法。一个简单的描述是跟踪分配的每个内存。系统会定期检查分配的段,以查看程序的任何部分(变量)是否仍可以到达内存。回收所有无法访问的内存。

什么时候以及如何称呼它?

这也留给实施。您在Java中的唯一保证是,在引发OutOfMemoryError之前,系统将尝试回收内存。我希望大多数GC实现在尝试向底层操作系统请求更多内存之前也尝试进行收集。通常,将有一个后台线程处理运行收集器。

为了回收内存,如果遵循什么算法?

有几种可能。查看其他人以此为起点的文章。

2020-12-03