Java对象的硬、软、弱和虚引用

Linux系统启动时自动连接网络:从ifcfg-ens33到ONBOOT配置详解 本文详细介绍了在Linux系统中配置开机自动联网的方法,重点讲解了如何通过修改ifcfg-ens33文件中的ONBOOT参数实现网络自动连接。文章包含从确认网卡名称到修改配置、验证生效的完整步骤,并提供了常见问题排查和进阶配置建议,适合Linux系统管理员和需要稳定网络环境的用户参考。 阅读详情

java对对象的引用有如下4中方式:
硬引用(StrongReference)

程序创建一个对象,并把对象覆盖一个引用变量,通过这个引用变量操作实际的对象。当一个对象被一个或多个引用变量引用时,它就处于可达状态,这个时候系统的垃圾回收机制就不会回收它。

软引用(SoftReference)

通过类SoftReference实现,当系统内存足够的时候,它不会被回收;但是当系统内存不足的时候,回收机制就会将其回收。Android中常用它来优化图片的异步加载。(现在一般使用LruCache,因为android 2.3+(API Level9)之后,SoftReference在内存够用的时候也有可能被提前释放掉)

弱引用(WeakReference)

通过WeakReference类实现,比软引用级别低。不过系统内存是否足够,只要回收机制运行,就会被回收

虚引用(PhantomReference)

对 对象本身没有影响,虚引用要个引用队列一起使用才有意义。当对象被回收时,与其关联的虚引用就会被放到引用队列中,通过在引用队列中查看虚引用可以在对象回收之前采取相应的行动。

举个例子:

public class Reference(){
    public static void main(String[] args){
        String str = new String("java对象");
        //创建一个引用队列
        ReferenceQueue rq = new ReferenceQueue();
        //创建一个虚引用
        PhantomReference pr = new PhantomReference(str,rq);
        System.out.println(pr.get());//显示null 因为虚引用实际不会获得对象
        //强制回收
        System.gc();
        System.runFinalization();
        //从引用队列中取出最先进入队列的引用也就是pr
        System.out.println(rq.poll == pr);
    }
}

以上是我对java引用的认识,有不对的欢迎留言指正,又不懂得欢迎交流

JVM源码剖析之软、弱、虚引用的处理细节 对于大大大大大大部分Java业务场景来说都是强引用,基本上不会使用到软、弱、虚引用。而在JDK1.2推出的软、弱、虚引用大部分出现场景都是在缓存中,在JDK类库ThreadLocal、WeakHashMap。框架:Mybatis、Netty、以及各种缓存框架等等。至于为什么要用在缓存中呢,也很好理解,因为这些引用实际上可有可无,完美契合于缓存,在有的时候给系统加速,在系统内存紧张的时候清除缓存给核心业务使用。 阅读详情

相关推荐

【Java】Java对象引用四个级别(强、软、弱、虚)

1.概述 转载:Java对象引用四个级别(强、软、弱、虚) 最近,高级Java技术栈微信群中,有一些猿友在讨论JVM中对象的周期问题,有谈到引用的级别,现在为大家做个总结吧,虽然大多数公司并没有意识或者用到这些引用,但了解这些基本概念对熟悉整个垃圾回收机制和面试是非常有帮助的。 为了使程序能更加灵活地控制对象的生命周期,从JDK1.2版本开始,JDK把对象的引用级别分为了以下四种。 这4种级别由高到低依次为: 强引用(StrongReference) 强引用就是我们平常最基本的对象引用,如果是强引用,那回.

九师兄 819

linux 设置开机自动联网,设置固定ip地址

我在VMware中安装了centos7,使用桥接模式并配置了固定的ip地址,可是每次开机之后需要手动在设置→网络里面打开网络才能联网,这样使用远程工具reboot之后很不方便,最好能设置centos7 在reboot之后自动打开网络就方便了,具体方式如下: 1.命令行 cd 定位到 /etc/sysconfig/network-scripts cd /etc/sysconfig/networ...

天天都在Debug的程序员liuqian 5223

Altium AD20差分对走线设置方法

AD20的PCB差分对走线设置 1、原理图添加差分对 先在原理图中,讲要设置差分对的网络对添加网络标签。 名称前面的内容要相同,后缀用 _P 和 _N 加以区分。 最后使用 放置差分对,将两个网络标记。 2、编译,更改到PCB 编译,更新到PCB,确认差分对网络的出现。 验证更改,执行更改。将改动更新到PCB中。 PCB中,可通过 右下角 Panels - 调出 PCB 显示。来对已添加的差分对进行查看。 这时原本的走线有一点点小问题,需要删掉原来走线,设置差分对规则,并重新布线。

Mark_md的博客 3万+

linux系统网卡设置

一、启动网卡 二、查询ip地址 三、重启网卡 四、如果重启网卡后找不到ip 五、设置网卡开机自启 六、固定服务器ip地址

yz2322944912的博客 3622

一个测试工程师走进一家酒吧……

一个测试工程师走进一家酒吧,要了一杯啤酒;一个测试工程师走进一家酒吧,要了一杯咖啡;一个测试工程师走进一家酒吧,要了 0.7 杯啤酒;一个测试工程师走进一家酒吧,要了-1 杯啤酒;一个测试...

字节跳动技术团队官方博客 4884

VT System故障排查指南:从License验证到硬件连接全解析

本文详细解析VT System故障排查全流程,从License验证、Real Bus模式设置到硬件连接与VT6000组网配置。针对VT7900板卡等特殊设备提供专业解决方案,并分享系统级故障的二分法排查技巧,帮助工程师快速定位和解决CANoe环境下的各类硬件识别问题。

weixin_29269441的博客 255

linux设置网络自动连接网络设置密码,设置Linux网络开机自动连接

测试机子上安装的centos5.6 系统,每次开机登录之后,默认的网络连接都是没打开的。使用起来很不方便。 其实可以简单修改一下网络连接的配置来实现,开机自动连接的。执行查看,使用的网卡[root@robot1 create]# ifconfigeth0 Link encap:Ethernet HWaddr 00:E0:4C:8D:8A:C8inet addr:192.168.1.105 Bcas...

weixin_36282704的博客 1203

深入SVT SPI VIP配置:如何灵活控制CS间隔、数据帧大小与时钟频率(含代码片段)

本文深入探讨了SVT SPI VIP的高级配置技巧,包括精确控制CS信号间隔、突破数据帧大小限制以及动态时钟频率切换。通过实战代码片段和详细配置步骤,帮助验证工程师灵活应对复杂SPI协议验证场景,提升验证效率和覆盖率。特别适合需要处理非标准SPI时序和特殊数据帧的芯片验证项目。

weixin_27014595的博客 280

linux配置网卡onboot,今天重新认识了Linux 网卡配置

root@x4100-9098/etc/ssh#mii-tool eth3eth3: negotiated 100baseTx-HD, link okroot@x4100-9098/etc/ssh#ethtool eth3Settings for eth3:Supported ports: [ TP ]Supported link modes: 10baseT/Half 10baseT/Ful...

weixin_30651409的博客 6064

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 994

改进后的yolov8导出进行部署到rk3588上时,导出为onnx格式报错aten::fft_fft2算子不支持导出...如何解决?

🏆本文收录于《全栈Bug调优(实战版)》专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!! 备注:部分问题/疑难杂症搜集于互联网。

**My Coding Family** 1795

JAVA 中的对象的软、弱和虚引用

对象与垃圾回收 :https://blog.youkuaiyun.com/qq_40794973/article/details/87740222 对大部分对象而言,程序里会有一个引用变量引用该对象,这是最常见的引用方式。除此之外,ava.lang.ref 包下提供了3个类:SoftReference、PhantomReference和 WeakReference,它们分别代表了系统对对象的3种引用方式:软...

底层码农 1万+

华为OD机试双机位C卷-统计差异值大于相似值二元组个数(C/C++/Py/Java/Js/Go)

华为OD机试(机考)双机位C卷 【统计差异值大于相似值二元组个数】,提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试 - 统计差异值大于相似值二元组个数

qq_45776114的博客 782

Java中强、软、弱、虚四种对象引用的详解和案例演示

介绍了Java中的强引用、软引用、弱引用、虚引用等四种对象引用,并且提供了测试案例,对虚引用的坑还做出了额外说明。

终生学习践行者 2592

基于matlab的主成分分析的人脸二维码识别系统

人脸识别因其在系统安全验证、信用验证、刑侦跟踪、身份管理、视频会议、人机交互、智能家居等方面的巨大应用前景,成为当前模式识别和人工智能领域越来越热门的一个研究方向。随着安全入口控制和二维码智能扫描应用需求的快速增长,基于二维码识别的生物人脸统计识别技术也引起了人们的重视。本案例将详细讲解基于主成分分析的人脸特征提取的原理与方法,并将其与 QR 二维码的编解码进行结合,将 MATLAB 作为工具平台,调用 QR 二维码编解码应用程序,进而实现一个人脸二维码自动识别的系统原型。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 976

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

强、软、弱、虚引用详解

在Java中,引用类型决定了对象的生命周期以及垃圾回收器对对象的处理策略。jdk1.2后引入了强引用、软引用、弱引用和虚引用四种类型、它们的强度依次减弱。

m0_62923286的博客 1170

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Java对象的强,软,弱,虚引用理解

1.对象的强、软、弱和虚引用 转自:http://zhangjunhd.blog.51cto.com/113473/53092/ 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由...

在下头很铁的博客 766

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

java中四种引用类型(对象的强、软、弱和虚引用)

对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及(reachable)状态,程序才能使用它。从JDK 1.2版本开始,把对象的引用分为4种级别,从而使程序能更加灵活地控制对象的生命周期。这4种级别由高到低依次为:强引用、软引用、弱引用和虚引用。   ⑴强引用(StrongReference)

刘京强的专栏 1万+

Java中四种引用类型(对象的强、软、弱和虚引用)

强引用:最常见的引用类型。如果一个对象有强引用,那么它就不会被垃圾回收器回收。软引用:如果一个对象只被软引用持有,那么当内存不足时,垃圾回收器会尽可能地回收这些对象。弱引用:如果一个对象只被弱引用持有,那么当垃圾回收器扫描到这个对象时,无论内存是否充足,都会回收该对象。虚引用:也称为幽灵引用或者幽灵参照。虚引用主要用于检测对象是否已经被垃圾回收器标记为即将回收的状态。如果一个对象只有虚引用,那么它和没有引用一样,随时可能被回收掉。

架构师之路。。 1050

JAVA面试_进阶部分_java中四种引用类型(对象的强、软、弱和虚引用)

java中四种引用类型(对象的强、软、弱和虚引用)

weixin_42997698的博客 941

Java对象的强、软、弱、虚引用

Java的方法的对象参数是按值传递的,而不是按引用传递的,即传递的是对象引用的值。对象引用通常是存放在栈中的,而对象引用所引用的对象是存放在堆中的。 在Java中,为了优化内存使用,降低OOM发生的风险,提高垃圾回收的效率,可以在应用程序中根据对象的特点来设置不同类型的对象引用来协助JVM进行垃圾回收。对象引用包括以下类型:除了强引用之外,其他三种引用类型,在GC roots可达的情况下,也可以...

源码之下,了无秘密 2507

java中强、软、弱和虚引用应用

工作中遇到内存泄露与OOM的性能问题,找到以下通俗易懂的好文做备份 本文介绍对象的强、软、弱和虚引用的概念、应用及其在UML中的表示。 author: ZJ 07-12-1 Blog: [url]http://zhangjunhd.blog.51cto.com/[/url] 1.对象的强、软、弱和虚引用 在JDK 1.2以前的版本中,若一个对象不被任何变量引用,那么程序就无法再使

haixia_12的专栏 2716

java中强引用、软应用、弱应用、虚引用

在Java中,引用类型决定了对象的生命周期和垃圾回收的时机。Java提供了四种不同的引用类型:强引用、软引用、弱引用和虚引用。每种引用类型的行为和用途不同,了解这些差异对优化内存管理和垃圾回收非常重要。

qq_45906596的博客 907

垃圾回收中对象的五种可达性——强、软、弱、虚、不可达

在javaAPI文档 https://docs.oracle.com/javase/8/docs/api/java/lang/ref/package-summary.html 中介绍了Java.lang.ref,它提供了与 Java 垃圾回收器密切相关的引用类。 并且介绍了对象的可达性。ReachabilityGoing from strongest to weakest, the diffe

牧之 2797

Java中强、软、弱、虚引用

1、前言: java中除了基本类型以外,其他数据类型都是引用的数据类型, 其中引用类型根据生命周期又分为: 强引用、软引用、弱引用、虚引用(幻象引用), 我们平时最长见到和使用的强引用类型吧,其他类型的引用,一般在代码库等源码框架中才可以看到; 2、简单介绍: 引用类型 引用时对象创建方式 gc 影响 一般用途 强引用 Object obj = new Object(); 对象被引用时,永远不会回收 99%对象创建形式 软引用 SoftReference softObj = new So

张井天的博客 877
上一篇: Android中View的setTag和getTag方法简述
下一篇: 简单的自定义圆形进度条ProgressBar
Z漫步
博客等级 码龄12年 42粉丝 80原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值