java中存在垃圾回收器,垃圾回收器也会占用内存。
在java编程思想中看到关于对象的回收有这么几句话:
java里的对象并非总会被垃圾回收,或者换句话说:
1).对象可能不被垃圾回收。
2).垃圾回收不等于“析构”(java中无此概念)。
注意:1.finalize()方法不能真正的作为垃圾清理的方法。其实,在这我有个个人的理解,java中垃圾回收,是GC觉得需要回收时才回收,而不是特定的某个时刻或者时间段回收,就像人们喝水一样,渴了(内存将殆尽)就会去喝水一样,但不会规定几点钟去喝水。
2.finalize() 的出现原因,根据《java编程思想》所说,很可能是对调用非Java代码的而设计的,如java调用C。