首先我们来了解垃圾回收机制是什么。
垃圾回收机制是JVM的一套管理程序中内存的方法。
JVM是Java虚拟机。JVM有什么好处呢?
Java程序的一大特性——跨平台,就是由JVM支持的。
就是我们常说的java虚拟机,它是整个java实现跨平台的最核心的部分,所有的java程序首先被编译为.class文件,这种类文件可以在虚拟机上运行,也就是说class并不直接与机器的操作系统相对应。而是经过虚拟机间接的与操作系统交互,由虚拟机将程序解释给本地系统执行,只有jvm还不能将.class文件执行,因为在解释.class文件的时候jvm需要调用解释所需要的类库lib,而jre包含lib类库。jvm屏蔽了具体操作系统平台的相关信息,使得java程序只需要生成在java虚拟机上运行的目标代码。可以在多种平台(操作系统)上不加修改的运行
安装JDK时,已经将JVM也安排上了。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019011210183641.png)
2.垃圾回收用到的方法
(1)finalize()
该方法是用来回收“特殊”的内存,而这内存不是new出来的,所以垃圾回收器无法回收。这种情况主要发生在使用“本地方法”native的情况下,本地方法native是一种在Java中使用的非Java代码,可以调用任何代码,但只能被C和C++调用。所以我们使用finalize()来释放本地方法产生的内存。
(2)System.gc()
该方法不推荐,严重消耗性能,除非万不得已,一般不用。