IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 多线程与高并发(四) -> 正文阅读

[Java知识库]多线程与高并发(四)

强引用

强引用是使用最普遍的引用,普通的引用就是强引用。如果一个对象具有强引用,那么垃圾回收器绝对不会回收它。当堆内存空间不足时,JVM会抛出OutOfMemoryError ,但仍不会回收具有强引用的对象。

public class NormalReference {
    public static void main(String[] args) throws IOException {
        NormalReference m = new NormalReference();
//        m = null;
        System.gc();
        System.in.read();
    }
}

软引用

当一个对象被软引用指向的时候,只有堆内存不够用的时候,才会回收它。如果不够用,永远不会回收。
在这里插入图片描述

弱引用

描述那些非必须对象,但是它的强度比软引用更弱一些,被弱引用关联的对象只能生存到下一次垃圾收集发生为止。当垃圾收集器开始工作,无论当前内存是否足够,都会回收掉只被弱引用关联的对象。
在这里插入图片描述

虚引用

如果一个对象仅持有虚引用,那么它就和没有任何引用一样,在任何时候都可能被垃圾回收器回收。虚引用主要用来跟踪对象被垃圾回收器回收的活动。虚引用必须和引用队列 (ReferenceQueue)联合使用。 垃圾回收器回收对象时,该对象还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。

换句话说为一个对象设置虚引用关联的唯一目的只是为了在这个对象被gc时收到一个系统通知。
在这里插入图片描述

ThreadLocalMap

在这里插入图片描述

  • 如果使用强引用,Entry 中的 k 强引用了 ThreadLocal ,ThreadLocal 永远不能释放
  • 如果使用弱引用,ThreadLocal 在垃圾回收时将释放,Entry 中的 k 将变为 null

WeakHashMap

与大多数集合类一样,这个类不是同步的。

public class WeakHashMap<K,V>
    extends AbstractMap<K,V>
    implements Map<K,V> {
    //清除weakEntry的队列
    private final ReferenceQueue<Object> queue = new ReferenceQueue<>();
    //WeakHashMap结构被修改的次数。  
    int modCount;
}
  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-04-29 11:57:31  更:2022-04-29 11:58:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 1:46:39-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码