首页 > 编程语言 >java 中都有哪些引用类型?

java 中都有哪些引用类型?

时间:2023-10-05 22:11:58浏览次数:28  
标签:java 哪些 对象 SoftReference 回收 队列 引用 new

1)强引用

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)

引用队列可以与软引用、弱引用、虚引用一起配合使用。
当垃圾回收器准备回收一个对象时,如果发现它还有引用,就会在回收对象之前,把这个引用加入到引用队列中。
程序可以通过判断引用队列中是否加入了引用,来判断被引用的对象是否将要被垃圾回收,这样可以在对象被回收之前采取一些必要的措施。

标签:java,哪些,对象,SoftReference,回收,队列,引用,new
From: https://www.cnblogs.com/wyl010926/p/17744006.html

相关文章

  • Java---继承
    继承的概念继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。需要注意的是,子类无法继承父类私有的对象和方法生活中的继承 ......
  • java面向对象
    一面向对象和面向过程面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分面向过程(算法+数据结构=程序)规模比较小的问题,分解为过程的开发方式比较理想面向功能划分软件结构以方法为单位面向对象(数据在第一位,再考虑......
  • 什么是智慧班牌?智慧班牌系统有哪些功能?
    智慧班牌云平台源码 智慧班牌可以通过以云平台为基础,结合互联网、物联网系统进行校园管理,实现学校数据、教学资源共享,推进校园信息化交流建设。而展示在班牌终端的信息可以随时更改和上传新的信息,减少班牌更替带来的财物力的损失。智慧班牌进行考勤功能应用,作为学生上课考勤的方式......
  • java基础-面向对象
    1面向对象之类与对象#类: 是抽象的概念,笼统的,不具体的人类狗类鸟类#对象: 对象又叫实体,类的具体表现人类中:厨师,学生,老师狗类:小狗1号,小黑狗#每个人对象都会有:姓名,性别,年龄,不同对象,属性又不一样#每个人的对象都会有方法:说话,走路1.1类的定义规......
  • Bean 的作用域有哪些?如何在 Spring 中创建 Bean?
    Bean的作用域有哪些?在Spring中,Bean的作用域定义了Bean实例的生命周期和可见性。Spring定义了以下五种作用域:1、singleton:单例模式,一个Bean容器中只存在一个实例。2、prototype:每次请求都会创建一个新的实例。3、request:每个HTTP请求都会创建一个新的实例。4、ses......
  • Java 中常见类型的流
    Java中的流(Stream)分为两种类型:字节流和字符流。   字节流(ByteStream)字节流可以处理任何类型的数据,但是它们是以字节为单位进行操作的。Java中提供了两种字节流:InputStream和OutputStream。InputStream是字节输入流,用于从数据源读取数据。InputStream的常用子类包括:  ......
  • java基础二
    1python和java字符串比较1.1java字符串常用方法importjava.util.Arrays;publicclassDemo01{publicstaticvoidmain(String[]args){//1字符串的常用方法Stringorigin="helloworld中国";//1取指定位置的字符从0开始//......
  • 基于Java的考编论坛网站的设计与实现(亮点:在线发布帖子、内容评论回复、购买二手物品、
    (考编论坛网站)网上大部分的毕设套路如下:在b站发毕设项目的演示视频,让你免费领取,你领取完发现代码不全或者数据库少表,根本跑不起来!如果要调试则收费300:sweat_smile:真的是恶心至极有没有!某宝找人帮忙写,简单来说比第一种行为靠谱,但是很贵!说是可以免费修改其实修改基本排不上队,......
  • Java基础知识29--主线程、子线程执行顺序
    1、主线程与子线程互不影响最常见的情况,主线程中开启了一个子线程,开启之后,主线程与子线程互不影响各自的生命周期,即主线程结束,子线程还可以继续执行;子线程结束,主线程也能继续执行。publicclassTestThread{publicstaticvoidmain(String[]args)throwsInterruptedExcepti......
  • java——redis随笔——基础
         层级模式:                                          11......