Java中引用相关的类

说明
ReferenceQueue 引用队列 与某个引用类绑定,当引用死亡后会进入这个队列
对象标记为垃圾(并不代表回收了)后或虚引用的对象被回收后,会加入到引用队列
HardReference 强引用 任何Object obj = new Object()建立起来的引用都是强引用
在obj指向另一个对象或者null之前,该对象不会被GC
WeakReference 弱引用 不会阻止GC回收弱引用存在的对象(仅存在弱引用)
SoftReference 软引用 不会阻止对象的GC,但回收会延迟到接近OOM时才执行
PhantomReference 虚引用 无法通过虚引用获取到引用的对象,被引用对象被回收后该引用会进入引用队列

WeakHashMap

WeakHashMap是弱键实现的哈希表。目的就是:实现对键值对的动态回收。当弱键不再被使用到时,GC会回收它,对应的键值对删除。

WeakHashMap使用场景
  • 分代缓存:tomcat中的使用示例参考

Java的引用(强软弱虚)的更多相关文章

  1. java的4种引用 强软弱虚

    <img src="https://pic4.zhimg.com/d643d9ab5c933ac475cfa23063bed137_b.png" data-r ...

  2. java的四种引用:强软弱虚

    简介 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于(reachable)可达状态,程序才能使用它. 从JDK 1.2版本开始,对象的引 ...

  3. JAVA不可不知的强软弱虚四种引用

    一个变量指向new对象,就是引用,在java中有四种引用,分别是强软弱虚,常见的Object o = new Object(),就是强引用,垃圾回收的时候,强引用不会被回收.   公用类: publi ...

  4. java中的引用类型:强软弱虚

    java中的引用类型共4种:强软弱虚,具体每种类型的特点和应用场景.记录下.本文是看了马士兵老师的视频后记录整理的.加深印象. 基本概念 1. 强引用 强引用是使用最普遍的引用.如果一个对象具有强引用 ...

  5. ThreadLocal以及强软弱虚引用

    1.ThreadLocal ThreadLocal即线程本地,可以实现每个线程存入取出TreadLocal值互不影响.因为TheadLocal底层是用了一个Map结构存放数据,而这个Map是从当前这个 ...

  6. java强软弱虚引用详解(转载)

    转载自:http://zhangjunhd.blog.51cto.com/113473/53092/ ava:对象的强.软.弱和虚引用 2007-12-01 17:20:20 标签:Java 软引用  ...

  7. 5.9 j(java学习笔记)强软弱虚引用及WeakHashMap、IdentityHashMap、EnumMap

    一.引用分类 强:运行垃圾回收机制后也不回收,程序出现内存溢出也不回收. 软:在垃圾回收机制运行时判断内存是否已满,如果内存已满则回收,内存充足则不回收. 弱:垃圾回收机制运行后不论内存是否充足都会立 ...

  8. Java 对象引用方式 —— 强引用、软引用、弱引用和虚引用

    Java中负责内存回收的是JVM.通过JVM回收内存,我们不需要像使用C语音开发那样操心内存的使用,但是正因为不用操心内存的时候,也会导致在内存回收方面存在不够灵活的问题.为了解决内存操作不灵活的问题 ...

  9. Java:对象的强、软、弱、虚引用

    转自: http://zhangjunhd.blog.51cto.com/113473/53092 1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无 ...

  10. Java:对象的强、软、弱和虚引用

    1.对象的强.软.弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象.也就是说,只有对象处于可触及(reachable)状态,程序才能使用它.从JDK ...

随机推荐

  1. element-UI el-table动态显示隐藏列造成固定一侧的列(fixed=“left/right“)错误显示

    问题原因:多个tabs共用一个实体,动态显示隐藏列 出现了固定在右侧的列(fixed="right")错位 [解决方案] 表格的重新布局,只要table数据发生变化的时候就重新渲染 ...

  2. 5.安装&卸载子应用 投票

    另起一个新的Django项目 djangoProject_poll_test ........ 把.tar.gz包下载到某个路径 D:\此电脑下分类\桌面\django-polls\dist\djan ...

  3. 转载:屎人-->诗人系列--码农之歌

    转贴经常关注的一个博主的文,感觉还挺有趣: https://goofegg.github.io/content.html?id=141 ************************** 这个系列第 ...

  4. RocketMQ - 生产者启动流程

    生产者启动流程 DefaultMQProducer是RocketMQ中默认的生产者实现 核心属性: namesrvAddr: 继承自 ClientConfig,表示 RocketMQ 集群的Names ...

  5. C语言知识补充 --来自菜鸟教程的指针复习

    1.system 打开其他应用 1.指针演练  C 指针. 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用 & 运算符访问的地址,它表示了在内存中的一个地址. #in ...

  6. Tesseract图片文字识别

    如何进行图文识别? 百度api收费的,自己训练模型集费时费力,有没有训练好的库,我们拿过来直接用的呢? 有,那就是tesseract. 安装 pipenv install pytesseract pi ...

  7. 基于pytorch实现模型剪枝

    一,剪枝分类 1.1,非结构化剪枝 1.2,结构化剪枝 1.3,本地与全局修剪 二,PyTorch 的剪枝 2.1,pytorch 剪枝工作原理 2.2,局部剪枝 2.2.1,局部非结构化剪枝 2.2 ...

  8. 代码随想录算法训练营day23 | leetcode 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

    LeetCode 669. 修剪二叉搜索树 分析1.0 递归遍历树时删除符合条件(不在区间中)的节点-如何遍历如何删除 如果当前节点大于范围,递归左树,反之右树 当前节点不在范围内,删除它,把它的子树 ...

  9. 路飞项目使用mysql数据库详细讲解

    目录 一.首先需要彻底删除原有的数据库步骤 二.去官网下载mysql步骤 三.安装mysql数据库步骤 四.一管理员身份进去cmd进行一系列命令启动 五.接下来为路飞项目创建数据库 六.luffy项目 ...

  10. 计网学习笔记二 Link Layer Service

    在上一周的计网学习了network和Internet的总论.在这一周开始的未来几讲将集中在链路层link layer,并且会有相应的计网lab完成.在这一讲中,我们主要关注链路层提供的服务. 课程资料 ...