美文网首页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