同学你好!在java程序运行过程中,一个垃圾回收器会不定时地被唤起检查是否有不再被使用的对象,并释放它们占用的内存空间。垃圾回收器的启用不由程序员控制,也无规律可循,并不会一产生垃圾,它就会被唤起,甚至有可能到程序终止,它都没有启动的机会。因此这不是一个很可靠的机制,这也许不是件坏事,因为垃圾回收器会给系统资源带来额外的负担。
至于你说的内存溢出有很多的情况,如果是你在编写代码时不遵循语法规则同样会产生溢出,比如在定义二维数组的时候,你编写的代码中没有及时的设置好数组的上限和下限这样就会引起内存的溢出,所以这两种机制是完全不同,不知道我说的这些你是否能够明白? |