iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >java对象的引用有哪些
  • 574
分享到

java对象的引用有哪些

2023-06-17 12:06:04 574人浏览 安东尼
摘要

本篇内容介绍了“java对象的引用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java对象的引用reference分为有强引用,软引

本篇内容介绍了“java对象的引用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

java对象的引用reference分为有强引用,软引用,弱引用,虚引用这几种形式。

1、Soft Reference(软引用)

指到的对象,即使没有任何Direct Reference,也不会清除,一直到JVM内存不足且没有Direct Reference时候才会清除。

应用场景:常用来设计缓存,不但可以将对象缓存起来,也不会容易造成内存不足。

2、Weak Reference(弱引用)

GC一旦发现了弱引用关系进行就开始收集对象。

应用场景:想查看某些对象信息,又不想影响GC对其的收集工作。

与GC的交互:

将referent置为null引用;

将堆中的目标对象设置为“finalizable(可结束的)”;

先执行finalize(),释放内存,软引用添加到RefernceQueue中。

ReferenceQueue在 soft renference和 weak reference中可以为null,但虚应用中必须有!

3、PhantomReference(虚引用)

与GC的交互:

不将referent置为null引用;而是将堆中的目标对象设置为“finalizable(可结束的)”;

先软引用添加到RefernceQueue中。然后收集对象,释放内存

附注:ReferenceQueue在 soft renference和 weak reference中可以为null,但虚引用中必须有!

4、抽象类Reference分析

java.lang.ref包中有四个类,他们的关系是PhantomReference,WeakReference,SoftReference继承了抽象类Reference。Reference类中,有thread子类(ReferenceHandler),并在静态区域中开启,对pending字段进行实时的监控

pending是由jvm来赋值的,当Reference内部的referent对象的可达状态改变时,jvm会将Reference对象放入pending链表

一旦relevent= null,垃圾收集时会标记WeakReference的referent为不可达get()返回null,并且通过赋值给pending ,触发ReferenceHandler线程处理pending。

ReferenceHandler线程要做的是将pending对象enqueue,但默认我们所提供的queue,也就是从构造函数传入的是null,实际是使用了ReferenceQueue.NULL,Handler线程判断queue为ReferenceQueue.NULL则不进行操作,只有非ReferenceQueue.NULL 的queue才会将Reference进行enqueue。

“java对象的引用有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: java对象的引用有哪些

本文链接: https://www.lsjlt.com/news/288979.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • java对象的引用有哪些
    本篇内容介绍了“java对象的引用有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!java对象的引用reference分为有强引用,软引...
    99+
    2023-06-17
  • java对象池有哪些
    java中的对象池有:1.SoftReferenceObjectPool;2.StackObjectPool;3.GenericObjectPool;4.GenericKeyedObjectPool;java中的对象池有以下几种SoftRe...
    99+
    2024-04-02
  • Java对象的知识点有哪些
    这篇文章主要讲解了“Java对象的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java对象的知识点有哪些”吧!问题的复杂性直接取决于抽象的类型和质量,同一个问题,如果抽象的方法...
    99+
    2023-06-03
  • Java String对象的使用方法有哪些
    这篇文章主要讲解了“Java String对象的使用方法有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java String对象的使用方法有哪些”吧!String 对象的实现Strin...
    99+
    2023-06-02
  • java有哪些jsp内置对象
    这篇文章主要介绍“java有哪些jsp内置对象”,在日常操作中,相信很多人在java有哪些jsp内置对象问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java有哪些jsp内置对象”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-20
  • java克隆对象的方法有哪些
    在Java中,克隆对象的方法有以下几种:1. 实现Cloneable接口并重写clone()方法:该方法是Object类中的方法,需...
    99+
    2023-09-25
    java
  • java创建对象的方式有哪些
    在Java中创建对象的方式有以下几种:1. 使用 `new` 关键字:通过使用 `new` 关键字,可以实例化一个类,并在内存中分配...
    99+
    2023-09-13
    java
  • Java创建对象的方法有哪些
    本篇内容介绍了“Java创建对象的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 简介Java...
    99+
    2024-04-02
  • Java中page对象使用方法有哪些
    在Java中,Page对象通常用于表示Web页面或应用程序中的单个页面。Page对象可以通过以下方法来使用:1. 获取页面元素:使用...
    99+
    2023-06-14
    page对象
  • Response对象的作用有哪些
    Response对象的作用主要有以下几个:1. 封装HTTP响应:Response对象负责封装HTTP响应的各种信息,包括状态码、头...
    99+
    2023-09-06
    Response
  • ADO.NET的对象有哪些
    这篇文章主要讲解了“ADO.NET的对象有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ADO.NET的对象有哪些”吧!ADO.NET的对象五个主要的组件,分别是Connection对象...
    99+
    2023-06-17
  • java创建对象方法有哪些
    java中创建对象方法有:1.使用new关键字创建;2.使用Class类创建;3.使用构造函数创建;4.使用反序列化创建;java中创建对象方法有以下几种使用new关键字创建public class Test {public static ...
    99+
    2024-04-02
  • Java中request对象常用方法有哪些
    在Java中,HttpServletRequest对象是处理HTTP请求的对象,常用的方法有:1. getParameter(Str...
    99+
    2023-08-18
    Java request
  • java对象序列化的方法有哪些
    Java对象序列化的方法有以下几种:1. 实现Serializable接口:该接口是Java提供的序列化接口,只需要让类实现该接口即...
    99+
    2023-08-24
    java
  • Java中面向对象的特性有哪些
    今天就跟大家聊聊有关Java中面向对象的特性有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。面向对象编程有三大特性:封装、继承、多态。   &nbs...
    99+
    2023-05-31
    java 面向对象 ava
  • Java 对象的 HTTP 加载方式有哪些?
    在现代互联网应用程序中,往往需要从远程服务器获取数据。Java 作为一种跨平台的编程语言,提供了多种方式来实现从远程服务器获取数据的功能。其中,HTTP 是最常见的一种方式。Java 中有多种 HTTP 加载方式,本文将介绍其中的几种。 ...
    99+
    2023-07-27
    对象 http load
  • java对象初始化的方法有哪些
    Java对象初始化的方法有以下几种: 构造方法:对象创建时自动调用的方法,用于初始化对象的成员变量和执行其他必要的操作。 实例初始...
    99+
    2024-02-29
    java
  • Javascript有哪些对象
    小编给大家分享一下Javascript有哪些对象,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript 对象Java...
    99+
    2024-04-02
  • Guestbook对象有哪些
    本篇内容介绍了“Guestbook对象有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!留言对象。类名:com.jspxcms.ext.d...
    99+
    2023-06-26
  • ADO.NET对象有哪些
    本篇内容主要讲解“ADO.NET对象有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET对象有哪些”吧!ADO.NET是Microsoft数据库访问的一种新技术,它支持连接式访问和...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作