Java引用类型

1 强引用

当我们使用new创建对象时,被创建的对象就是强引用。只要有强引用,GC 永远不会回收掉该对象。

  Map map = new HashMap();

2 软引用

如果一个对象只具备软引用,如果内存空间足够,那么JVM就不会GC它,如果内存空间不足了,就会GC该对象。

软引用需要借助SoftReference类完成。

Java引用类型

3 弱引用

如果一个对象只具有弱引用,只要JVM的GC线程检测到了,就会立即回收。弱引用的生命周期要比软引用短很多。

软引用需要借助WeaKReference类完成。

!

Java引用类型

Java引用类型

4 虚引用

虚引用也称为幽灵引用或幻影引用。虚引用的 get 方法永远返回 null,一个对象是否存在虚引用不会对生存时间构成影响。唯一的用处:能在对象被 GC 时能够得知。JAVA 中用 PhantomReference 来实现虚引用。PhantomReference 使用时,必须要关联一个 ReferenceQueue 对象。当一个对象被 GC 的时候,如果该对象有虚引用,那么就会把对象放入 ReferenceQueue 里。通过检查 ReferenceQueue 队列中的对象来判等对象是否即将被回收,可以记录一些日志之类的信息。

Java引用类型

查考文章

Original: https://www.cnblogs.com/iforeverhz/p/16257076.html
Author: iforeverhz
Title: Java引用类型

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583224/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • CentOS7安装MySQL5.7并配置账户等

    注意: 有的Centos版本默认安装了mariadb, 可以先将其卸载 检查mariadb是否安装 yum list installed | grep mariadb 卸载mari…

    Linux 2023年6月6日
    070
  • NTP服务器实现

    时间服务器是一种计算机网络仪器,它从参考时钟获取实际时间,再利用计算机网络把时间信息传递给用户。虽然还有一些比较少用或过时的协议仍然在使用,但现时最重要及广泛使用,作为时间信息发送…

    Linux 2023年6月7日
    080
  • 实验一-密码引擎-商用密码算法实现1

    任务详情 参考https://weread.qq.com/web/reader/2fb3259071ef04932fbfd2ekc81322c012c81e728d9d180和网上…

    Linux 2023年6月8日
    0112
  • shell判断文件是否存在

    shell判断文件,目录是否存在或者具有权限 !/bin/sh 3. myPath=”/var/log/httpd/” myFile=”/var…

    Linux 2023年5月28日
    093
  • vue 中,echarts的使用,简单入门

    vue 中,echarts的使用,简单入门 原作者哔哩哔哩视频 感谢 多多支持效果图 首先创建一个页面组件,创建三个div,分别来使用折线图,柱状图,扇形图 //折线图 //柱状图…

    Linux 2023年6月7日
    094
  • shell ${val:0:3)含义

    ${file:0:5}:提取最左边的5个字节:/dir1${file:5:5}:提取第5个字节右边的连续5个字节:/dir2 例子: pval=12345678 r=${pval:…

    Linux 2023年5月28日
    060
  • Hadoop Shell命令

    http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html Original: https://www.cnblogs.com/…

    Linux 2023年5月28日
    084
  • Apache Solr Velocity 注入远程命令执行漏洞 (CVE-2019-17558)

    一、Apache Solr介绍 Solr是一个独立的企业级搜索应用服务器,它对外提供类似于web-service的API接口,用户可以通过http请求,向搜索引擎服务器提交一定格式…

    Linux 2023年6月13日
    085
  • Jenkins配置国内插件源

    由于Jenkins插件下载慢,配置国内源 进入Jenkins的更新目录: jenkins-home 下的updates 目录 替换目录里面的default.json 文件内容(je…

    Linux 2023年6月14日
    0277
  • linux inode 详解 / 线上inode爆满解决方案

    linux inode 详解 / 线上inode爆满解决方案 本文大量参考阮一峰大神博客,整理笔记 之所以&amp…

    Linux 2023年6月7日
    098
  • 微信聊天内容可以被监听吗

    上班摸鱼与网络安全 成为了锅叔在博客园阅读数最高的一篇文章,足可见同学们上班摸鱼的热情,同时也反映了大家对网络安全的担忧…… 对于其中的一个存疑问题,&#8…

    Linux 2023年6月13日
    090
  • vim使用心得

    /etc/vimrc 系统整体的vim设定值 ~/.vimrc 用户自己的vim设定值 (此文件的批注为单个双引号) 目前我只设定了: set nu “显示行号 Ori…

    Linux 2023年6月6日
    078
  • 大数据之Hadoop中HDFS的故障排除

    NameNode故障处理 1)需求 NameNode进程挂了并且存储的数据也丢失了 2)故障模拟 (1) kill -9 NameNode进程 kill -9 19886 (2)删…

    Linux 2023年6月8日
    099
  • shell中 $() $(()) $[] ${} $[[]] 区别

    $( ) 与 (反引号) 在 bash shell &#x4E…

    Linux 2023年5月28日
    085
  • 剑指offer计划22( 位运算中等)—java

    1.1、题目1 剑指 Offer 56 – I. 数组中数字出现的次数 1.2、解法 救命,真不会用位运算,还是用哈希表做吧,位运算过段时间再学习~~~搞不来,虽然说哈…

    Linux 2023年6月11日
    072
  • redis用法介绍

    Jedis常用方法API Redis命令用scan代替keys、smembers等命令 Java Spring 与 Redis 操作封装源码 Redis API 必杀解读:引入Re…

    Linux 2023年5月28日
    078
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球