当前位置: 技术问答>java相关
关于Garbage Collector&Finalize()
来源: 互联网 发布时间:2015-07-16
本文导语: 既然finalize()用来清除那些非new来非配内存空间的对象,那么既然gc可以清楚任何类型的不用的对象,那么还要finalize()干什么呢? | gc只可清除内存,但还有其他的很多非内存资源,例如图象句...
既然finalize()用来清除那些非new来非配内存空间的对象,那么既然gc可以清楚任何类型的不用的对象,那么还要finalize()干什么呢?
|
gc只可清除内存,但还有其他的很多非内存资源,例如图象句柄,一个对象可以控制对于屏幕等的操作,但你得手工清除这些资源
|
don't use finalize().
at least don't rely on it. it's not guaranteed to run.
at least don't rely on it. it's not guaranteed to run.
|
gc只能清除在堆上分配的内存(纯java语言的所有对象都在堆上分配内存),而不能清除在栈上分配的内存(当使用JNI技术时,可能会在栈上分配内存,例如java调用c程序,而该c程序使用malloc分配内存时)。