垃圾回收机制指的是对处理完毕后不再需要的堆内存空间的数据和对象进行清理,释放它们所使用的内存空间,这里把不需要的数据比喻为垃圾。
当程序加载到内存后,除此之外还会额外生成两个组,那就是堆和栈。
堆:是用来存储主函数内部临时使用的变量(局部变量),以及函数调用时所用的参数的内存区域。
栈:是用来存储程序运行时任意数据及对象的内存领域
栈和堆相似之处在于,他们的内存空间都是在程序运行时得到申请分配的。在内存使用方法上,二者存在有些不同。栈中对数据进行存储和舍弃(清理数据)的代码,是有编译器自动生成的,因此不需要程序员的参与。使用栈的数据的内存空间,每当函数被调用时都会得到申请分配,并在函数处理完毕后自动释放。与此相会,堆的内存空间,则要根据程序员编写的惩处,来明确进行申请分配或释放。