zoukankan      html  css  js  c++  java
  • 对象的生命周期回顾篇


    一、对象的三个阶段


    对象大概来看应该有创建阶段,使用阶段和销毁阶段。

    创建对象的方法有显式创建和隐式创建两种。

    1.显式创建:

    (1)new 

    (2)反射

    (3)克隆

    (4)反序列化

    2.隐式创建:比如当一个类被加载后就会在堆区创建一个Class对象,这是程序员所不知道的。


    二、对象的状态分类:


    1.可触及状态:被创建后的状态。

    2.可复活状态:没有引用变量引用该对象时。 

    3.不可触及对象:被垃圾回收的时候。


    三、finalize方法


    在对象进入可复活状态后,垃圾回收之前,会调用finalize()方法,当然这只是理想状态,有可能不会调用,因此finalize()方法存在很多的不确定性,一般不使用finalize();


    四、垃圾回收


    垃圾回收线程是一个优先级很低的线程,因此有时候永远都轮不到垃圾回收,比如当调用了System.gc()时,程序只是建议催促垃圾回收线程回收垃圾,而垃圾回收线程来不来回收是不确定的。


    五、对象的引用分类java.lang.ref


    1.强引用:垃圾回收器永远不会回收他。

    2.软引用:如果内存够,则不回收他,如果内存不够,则会回收他。SoftReference

    3.弱引用:不管内存够不够,只要垃圾回收器扫描到他,则回收他。WeakReference

    4.虚引用:可有可无,任何时候都可以被回收。PhantomReference




    作者:xiazdong
    出处:http://blog.xiazdong.info
    本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。
  • 相关阅读:
    关于Tomcat的那些事儿(一)
    关于Spring的问题(一)
    关于Spring的@RequestBody的使用
    关于Eclipse切换所有分支
    关于使用BetterIntelliJ激活IntelliJ IDEA
    关于Elasticsearch的问题(一)
    关于Elasticsearch那些事
    关于LRU算法及Java实现
    自定义滚动条
    创建型模式之建造者模式
  • 原文地址:https://www.cnblogs.com/xiazdong/p/3058150.html
Copyright © 2011-2022 走看看