本文主要向大家介绍了Java语言中几个Reference常见的作用详解,通过具体的内容向大家展现,希望对大家学习Java语言有所帮助。

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

> localSelector

= new ThreadLocal

>();

用于临时的Selector。

PhantomReference:通过构造函数的ReferenceQueue作为一个通知,用来在对象被回收时做额外的操作。

好了,以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,了解更多详情请关注编程语言JAVA频道!

java什么是reference_Java语言中几个Reference常见的作用详解[Java代码]相关推荐

  1. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

  2. C语言中的字符串转数字函数常见问题详解

    目录 C语言中的字符串转数字函数常见问题详解 字符串转整形 atoi函数 字符串转长整形 strtol函数, C语言中的字符串转数字函数常见问题详解 字符串转整形 atoi函数 函数原型: int a ...

  3. Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介、案例应用(python中的编码格式及常见编码问题详解)之详细攻略

    Computer:字符编码(ASCII编码/GBK编码/BASE64编码/UTF-8编码)的简介.案例应用(python中的编码格式及常见编码问题详解)之详细攻略 目录 符串编码(ASCII编码/GB ...

  4. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]

    本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...

  5. java中的静态变量的作用域_详解JAVA中static的作用

    1.深度总结 引用一位网友的话,说的非常好,如果别人问你static的作用:如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的:如果是说 可以构成 静态代码块,那别人认为你还可以: 如果你说 ...

  6. java return返回值_java中关于return返回值的用法详解

    我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...

  7. java web初始化实例_Struts2中实现web应用的初始化实例详解

    Struts2中实现web应用的初始化实例详解 在JavsSE中,main方法为应用提供了入口,而在Android中,我们可以使用Application对于整个应用的生命周期进行管理,那么在基于Str ...

  8. java接口vm和dto的区别_第十八节:详解Java抽象类和接口的区别

    前言 对于面向对象编程来说,抽象是它的特征之一. 在Java中,实现抽象的机制分两种,一为抽象类,二为接口. 抽象类为abstract class,接口为Interface. 今天来学习一下Java中 ...

  9. mysql中函数mid_MySQL MID()函数的用法详解(代码示例)

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的:MID(str,pos,len) 这里,str是字符串 ...

  10. java中bean的定义有哪些_详解Java的Spring框架中bean的定义以及生命周期

    bean的定义形成应用程序的骨干是由Spring IoC容器所管理的对象称为bean.bean被实例化,组装,并通过Spring IoC容器所管理的对象.这些bean由容器提供,例如,在XML的定义, ...

最新文章

  1. 【直播】王茂霖:二手车交易价格预测 Baseline 提高(河北高校数据挖掘邀请赛)
  2. luogu P1345 [USACO5.4]奶牛的电信Telecowmunication(建图技巧 - “割点”模板 、最小割)
  3. NgRx使用CreateSelector组装复合Selector
  4. javascriptjquery 判断滚动到页面底部
  5. 深度学习pytorch--softmax回归(三)
  6. Sublime 安装包时出现的 There are no packages available for installation
  7. 9月安卓机性能榜单公布:华为未进前十,第一名有点意外
  8. centos7 mysql 开机启动_mysqld service 随开机启动 (Centos6,Centos7)
  9. 第一代电子计算机主机是,以 计算机主机是由CPU与哪种设备共同构成的 为第一题的100道题的答案...
  10. 在线ASCII流程图编辑器工具
  11. CCF NOI1025 统计奖牌
  12. Jupyter的使用与安装
  13. 制作网页特效的基本步骤
  14. AE 动效工作流技巧 —— 减少 Bodymovin 导出的 JSON 大小并提升性能(三)
  15. Tekla二次开发入门经典例子
  16. linux上的手机管家,腾讯手机管家官网版
  17. 【合天网安】DoraBox之文件包含及任意文件读取漏洞
  18. Java中的Stream流
  19. BZOJ4130:[PA2011]Kangaroos
  20. 2021-05-12 MongoDB面试题 MongoDB适合应用在那些场景

热门文章

  1. BET测试案例分享及问题解答
  2. python_day1_python基础
  3. 关闭Spectre缓解(非安装)
  4. 知识点16--k8s资源配置清单入门
  5. C# .net 填充无效,无法被移除 微信小程序解密失败的解决办法
  6. java:编写一个程序,生成0和9之间的100个随机整数,然后显示每一个数出现的次数。需要使用数组。
  7. 中移动2013年净利润1217亿元 同比降5.9%
  8. 摩尔纹是什么?如何消除摩尔纹?
  9. PyTorch的主要组成模块
  10. 七个细节解决公众号运营中的问题 欣赏与转化是两回事