黑马程序员技术交流社区
标题:
关于JAVA中内存垃圾回收器的问题!
[打印本页]
作者:
贾成龙
时间:
2012-8-7 22:13
标题:
关于JAVA中内存垃圾回收器的问题!
Object 中finalize和JAVA虚拟机中gc()垃圾回收器的区别?都是回收垃圾!
作者:
叶久瑞
时间:
2012-8-7 22:39
gc 只能清除在堆上分配的内存(纯java语言的所有对象都在堆上使用new分配内存),而不能清除栈上分配的内存(当使用JNI技术时,可能会在栈上分配内存,例如java调用c程序,而该c程序使用malloc分配内存时).因此,如果某些对象被分配了栈上的内存区域,那gc就管不着了,对这样的对象进行内存回收就要靠finalize().
finalize(),而且只有在下一次垃圾收集过程中,才会真正回收对象的内存.所以如果使用finalize(),就可以在垃圾收集期间进行一些重要的清除或清扫工作.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2