Java中几个Reference常见的作用详解

发布时间 - 2026-01-11 01:53:40    点击率:

前言

Java中几个Reference作用,也是面试的时候经常问到的问题,以前总是记一次忘一次,现在有时间,索性写个demo测试一把。下面来一起看看详细的介绍:

具体代码如下:

JVM 参数: -Xmx10m -Xms5m -XX:+PrintGC

SoftReference的时候:


weakReference的时候:


StrongReference:

由于strong是JVM默认的,这里就不做了,直接就是一点都不会被回收,直至OOM

PhantomReference:

虚引用并不会改变内存回收机制,只是在回收的时候放到ReferenceQueue里通知用户可做一些额外操作,比如打印日志等

如下代码,本质上byte[]还是一个强引用的。

输出:


总结一下:

  • StrongReference:JVM默认,除非GC时已无任何对象引用,否则即便是OOM也不会回收
  • WeakReference:一旦没有被引用,GC时就会回收
  • SoftReference:和strong一样,除非GC时已无任何对象引用,否则....在即将OOM前才会被回收,所以SoftReference一般可以用来做缓存
  • sun.nio.ch.Util中就有private static ThreadLocal<SoftReference<SelectorWrapper>> localSelector
  • = new ThreadLocal<SoftReference<SelectorWrapper>>();
  • 用于临时的Selector。
  • PhantomReference:通过构造函数的ReferenceQueue作为一个通知,用来在对象被回收时做额外的操作。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。


# java  # reference  # java中reference  # reference用法  # java中的Reference类型用法说明  # Java 中 Reference用法详解  # 详解java中Reference的实现与相应的执行过程  # 详解Java弱引用(WeakReference)的理解与使用  # java编程Reference核心原理示例源码分析  # 已无  # 几个  # 好了  # 就有  # 如有  # 才会  # 可以用  # 作为一个  # 不做  # 时就  # 这篇文章  # 来做  # 谢谢大家  # 问到  # 可做  # 本质上  # 只是在  # 即便是  # JVM  # center 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何快速配置高效服务器建站软件?  如何在Windows服务器上快速搭建网站?  如何将凡科建站内容保存为本地文件?  图片制作网站免费软件,有没有免费的网站或软件可以将图片批量转为A4大小的pdf?  实例解析Array和String方法  如何在橙子建站上传落地页?操作指南详解  高端云建站费用究竟需要多少预算?  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  Laravel如何升级到最新版本?(升级指南和步骤)  Gemini怎么用新功能实时问答_Gemini实时问答使用【步骤】  如何在阿里云虚拟服务器快速搭建网站?  香港服务器租用每月最低只需15元?  如何在腾讯云服务器快速搭建个人网站?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  长沙做网站要多少钱,长沙国安网络怎么样?  Laravel用户密码怎么加密_Laravel Hash门面使用教程  Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  使用豆包 AI 辅助进行简单网页 HTML 结构设计  Android实现代码画虚线边框背景效果  HTML 中动态设置元素 name 属性的正确语法详解  香港服务器如何优化才能显著提升网站加载速度?  PythonWeb开发入门教程_Flask快速构建Web应用  Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性  EditPlus中的正则表达式 实战(4)  如何在IIS中新建站点并配置端口与物理路径?  Laravel API资源(Resource)怎么用_格式化Laravel API响应的最佳实践  高端智能建站公司优选:品牌定制与SEO优化一站式服务  Windows10电脑怎么查看硬盘通电时间_Win10使用工具检测磁盘健康  制作公司内部网站有哪些,内网如何建网站?  佛山企业网站制作公司有哪些,沟通100网上服务官网?  猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?  如何在新浪SAE免费搭建个人博客?  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  Laravel怎么判断请求类型_Laravel Request isMethod用法  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  如何为不同团队 ID 动态生成多个非值班状态按钮  INTERNET浏览器怎样恢复关闭标签页_INTERNET浏览器标签恢复快捷键与方法【指南】  什么是javascript作用域_全局和局部作用域有什么区别?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel怎么使用Intervention Image库处理图片上传和缩放  微信小程序 配置文件详细介绍  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  javascript日期怎么处理_如何格式化输出  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何在宝塔面板中创建新站点?  如何使用 Go 正则表达式精准提取括号内首个纯字母标识符(忽略数字与嵌套)  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】