zoukankan      html  css  js  c++  java
  • Java强引用、软引用、弱引用、虚引用使用

    概述

      在Java 1.2版本后,将引用概念进行扩充,分别为:强引用、软引用、弱引用、虚引用,引用强度由强到弱。

    一、强引用

      在程序中最常用的引用方式,如:Object obj = new Object()这种引用关联,强引用只要引用关系存在,GC在回收时就不会回收引用的对象。

    二、软引用

      软引用是描述一些对象有用,但是,是非必须的对象。软引用引用的对象,在系统内存溢出前,GC进行第二次回收,当回收内存不足够使用,才会抛出内存溢出异常。

      在Java 1.2版本后,软引用通过SoftReference类实现。

    三、弱引用

      弱引用比软引用强度更弱一点,描述一些非必须的对象,弱引用对象的生命周期在下一次的GC为止。弱引用对象无论无论系统内存是否充足,在GC时都会被回收。

      在Java 1.2版本后,弱引用通过WeakReference类实现。

    四、虚引用

      虚引用是引用强度最弱的,虚引用的对象对对象的生命周期没有任何影响,并且也无法通过虚引用获取对象。虚引用存在的唯一目的就是为了在GC回收前对象能收到系统回收的通知。

      在Java 1.2版本后,虚引用通过PhantomReference类实现。

  • 相关阅读:
    [NOIP2017 TG D2T2]宝藏(模拟退火)
    [洛谷P1337][JSOI2004]平衡点 / 吊打XXX
    [洛谷P4940]Portal2
    [CF1073E]Segment Sum
    [CF1066C]Books Queries
    [CF1065C]Make It Equal
    [洛谷P3469][POI2008]BLO-Blockade
    网络模型 ------->MobileNet-v3
    C++--------------------->>>>>>cmakelist的编写
    C++ ----------------》》》》》cmake list的
  • 原文地址:https://www.cnblogs.com/naray/p/8665655.html
Copyright © 2011-2022 走看看