美文网首页Android Development
Thinking java , Enjoying java(三)

Thinking java , Enjoying java(三)

作者: 喜欢书的女孩 | 来源:发表于2016-12-19 23:04 被阅读10次
2016-11-11

版权声明:本文为博主原创文章,转载请说明出处。

今天重新看了Thinking in java中垃圾回收和终极处理原理。
[1]java中有负责回收无用对象占据内存资源的垃圾回收器,但是垃圾回收器只知道释放那些有new分配的内存。而对于不是由new分配的内存无法进行释放,java中允许在类中定义一个finalize()方法。
[2]finalize()方法的原理:

[2.1]垃圾回收器准备释放对象所占内存
[2.2]先调用inalize()方法
[2.3]在下一次垃圾回收动作发生时,才会真正回收对象占用的内存

[3]在java中,你需要明白一下几点,才能更好的理解垃圾回收机制:

[3.1]对象可能不被垃圾回收处理
[3.2]垃圾回收不等于c++的析构函数
[3.3]垃圾回收只与内存有关

package cxy.first;
//终极处理和垃圾回收
//java有垃圾回收机制回收new分配的内存,finalize()用于回收不是new分配的内存
//[1]对象可能不被垃圾回收
//[2]垃圾回收不等于析构函数
//[3]垃圾回收只与内存有关
class Book{
    boolean checkedOut=false;
    Book(boolean checkOut){
        checkedOut=checkOut;
    }
    void checkIn(){
        checkedOut=false;
    }
    protected void fianlize(){
        if(checkedOut)
            System.out.println("Erro:checked out");
    }

}

public class TerminationCondition {
    public static void main(String[] args){
        Book novel=new Book(true);
        novel.checkIn();
        new Book(true);
        System.gc();
    }
}

[参考]thinking in java

相关文章

网友评论

    本文标题:Thinking java , Enjoying java(三)

    本文链接:https://www.haomeiwen.com/subject/qyqxvttx.html