java 中都有哪些引用类型?

这篇具有很好参考价值的文章主要介绍了java 中都有哪些引用类型?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

(1)强引用 (StrongReference)

Java中 默认声明的就是强引用,比如:

Object obj = new Object();
obj = null;

只要 强引用存在,垃圾回收器将永远不会回收被引用的对象 。如果 想被回收,可以将对象置为null

(2)软引用(SoftReference)

在内存足够的时候,软引用不会被回收,只有在内存不足时,系统才会回收软引用对象,如果回收了软引用对象之后仍然没有足够的内存,才会跑出内存溢出异常。

byte[] buff = new byte[1024 * 1024];
SoftReference<byte[]> sr = new SoftReference<>(buff);

(3)弱引用(WeakReference)

进行垃圾回收时,弱引用就会被回收。

(4)虚引用(PhantomReference)

虚引用:简单来说就是对于引用对象来说如同虚设。如果一个对象仅持有虚引用,那么它和没有任何引用一样,在任何时候都有可能被垃圾回收器回收。

但是为什么开发这种引用,这种引用也是有用途的,主要用来跟踪对象被垃圾回收的活动。当垃圾回收器准备回收一个对象时,如果发现它还有虚引用,就会在回收对象的内存之前,把这个虚引用加入到与之关联的引用队列中。

(5)引用队列(ReferenceQueue)

引用队列可以与软引用、弱引用、虚引用一起配合使用。

当垃圾回收器准备回收一个对象时,如果发现它还有引用,就会在回收对象之前,把这个引用加入到引用队列中。

程序可以通过判断引用队列中是否加入了引用,来判断被引用的对象是否将要被垃圾回收,这样可以在对象被回收之前采取一些必要的措施。文章来源地址https://www.toymoban.com/news/detail-425654.html

到了这里,关于java 中都有哪些引用类型?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java集合中Set都有哪些特性?看这篇就够了!

    本文将为大家详细讲解Java中的SET集合,这是我们进行开发时经常用到的知识点,也是大家在学习Java中很重要的一个知识点,更是我们在面试时有可能会问到的问题。 文章较长,干货满满,建议大家收藏慢慢学习。文末有本文重点总结,主页有全系列文章分享。技术类问题,

    2024年02月05日
    浏览(64)
  • java中操作字符串都有哪些类?它们之间有什么区别?

    Java中常用的字符串操作类有: String类是Java中最常用的字符串类,它是不可变的字符串,即创建后不能被修改。 StringBuilder类也是一个字符串操作类,但它是可变的,即可以修改已经创建的字符串对象。StringBuilder比String更适合在程序中进行字符串拼接操作。 StringBuffer类与St

    2023年04月21日
    浏览(83)
  • 65.Spring 框架中都用到了哪些设计模式?

    在我们的系统中,有一些对象其实我们只需要一个,比如说:线程池、缓存、对话框、注册表、日志对象、充当打印机、显卡等设备驱动程序的对象。事实上,这一类对象只能有一个实例,如果制造出多个实例就可能会导致一些问题的产生,比如:程序的行为异常、资源使用

    2024年01月23日
    浏览(86)
  • [Java网络安全系列面试题] HTTP和HTTPS协议区别和联系都有哪些?

    2.1 HTTP特点 1.支持客户/服务器模式。( C/S 模式) 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有 GET 、 HEAD 、 POST 。每种方法规定了客户与服务器联系的类型不同。由于 HTTP 协议简单,使得 HTTP 服务器的程序规模小,因而通信速度很快。

    2024年04月23日
    浏览(48)
  • Java 四种引用类型(强引用、软引用、弱引用、虚引用)

    在 Java 中,基本类型和引用类型是两种不同的数据类型 基本类型直接表示数值、字符或布尔值,直接将值存储在内存,包括 byte、short、int 、long、float 、double、char、boolean 引用类似 C 语言中的指针,在内存中存储的是对象的引用而不是对象本身,通过这个引用可以操作对象

    2024年02月05日
    浏览(55)
  • Java 四大引用类型

    GC 回收的优先级上 : 强引用 - 软引用 - 弱引用 - 虚引用 当内存不足, JVM 开始进行 gc 时,对于强引用的对象不会进行回收,即使出现了 OOM 也不会回收。因此,强引用是造成内存泄露的主要原因。 当进行 GC 时,如果内存还足够,则不进行回收该对象,若内存不够,则回收该

    2024年02月11日
    浏览(42)
  • Java中的各种引用类型以及部分引用的相关例子

    在Java中,引用类型主要有四种,分别是:强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)。这些类型通常与垃圾回收机制有关,用来描述对象的生命周期和可达性。下面详细介绍每一种引用类型: 强引用 (Strong Reference) 强

    2024年04月13日
    浏览(42)
  • Java中的四种引用类型及其使用方式

    Java中有四种引用类型,分别是强引用(Strong Reference)、软引用(Soft Reference)、弱引用(WeakReference)、虚引用(PhantomReference)。 这要从Java管理内存的方式说起。Java为了将程序员从内存管理中解救出来,即不让程序员自己申请堆内存(比如C语言程序员需要通过malloc请求操作系统分配一

    2023年04月09日
    浏览(51)
  • Java基础知识——类、静态、继承、引用类型使用

    类的定义格式如下: 例如: 例如: 1.3.1 封装的步骤 1.使用 private 来修饰成员变量。 2.使用 public 修饰getter和setter方法。 1.3.2 封装的步骤实现 private修饰成员变量 public修饰getter和setter方法 1.4.1 构造器的作用 通过调用构造器可以返回一个类的对象,构造器同时负责帮我们把

    2023年04月19日
    浏览(48)
  • 深入理解 Java 引用类型:强壮、柔软、脆弱、虚无的力量

    🔭 大家好,我是 vnjohn,在互联网企业担任 Java 开发,CSDN 优质创作者 📖 推荐专栏:Spring、MySQL、Nacos、Java,后续其他专栏会持续优化更新迭代 🌲文章所在专栏:JVM 🤔 我当前正在学习微服务领域、云原生领域、消息中间件等架构、原理知识 💬 向我询问任何您想要的东西

    2024年02月11日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包