广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java的四种引用方式
  • 239
分享到

Java的四种引用方式

2024-04-02 19:04:59 239人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录1.强引用(StrongReference)2.软引用(SoftReference)3.弱引用(WeakReference)4.虚引用(PhantomReference)5.&n

1.强引用(StrongReference)

  • 使用最普遍的引用。
  • 只要引用链没有断开,强引用就不会断开。- 当内存空间不足,抛出OutOfMemoryError终止程序也不会回收具有强引用的对象。
  • 通过将对象设置为null来弱化引用,使其被回收

Object object = new Object();
String str = "scc";
//都是强引用

2.软引用(SoftReference)

  • 对象处在有用但非必须的状态
  • 只有当内存空间不足时, GC会回收该引用的对象的内存。
  • 可以用来实现高速缓存(作用)--比如网页缓存、图片缓存

// 注意:wrf这个引用也是强引用,它是指向SoftReference这个对象的,
// 这里的软引用指的是指向new String("str")的引用,也就是SoftReference类中T
SoftReference<String> wrf = new SoftReference<String>(new String("str"));

3.弱引用(WeakReference)

弱引用就是只要JVM垃圾回收器发现了它,就会将之回收。

  • 非必须的对象,比软引用更弱一-些
  • GC时会被回
  • 被回收的概率也不大,因为GC线程优先级比较低
  • 适用于引用偶尔被使用且不影响垃圾收集的对象 使用:

Map<Key, ResourceWeakReference> activeEngineResources = new HashMap<>();
//ResourceWeakReference弱引用

4.虚引用(PhantomReference)

  • 不会决定对象的生命周期
  • 任何时候都可能被垃圾收集器回收
  • 跟踪对象被垃圾收集器回收的活动,起哨兵作用
  • 必须和引用队列ReferenceQueue联合使用

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

        程序可以通过判断引用队列中是否已经加入了虚引用,来了解被引用的对象是否将要被垃圾回收。如果程序发现某个虚引用已经被加入到引用队列,那么就可以在所引用的对象的内存被回收之前采取必要的行动。


Object obj = new Object();
ReferenceQueue queue = new ReferenceQueue();
PhantomReference reference = new PhantomReference(obj, queue);
//强引用对象滞空,保留软引用
obj = null;

5. 引用队列(ReferenceQueue)

  • 无实际存储结构,存储逻辑依赖于内部节点之间的关系来表达
  • 存储关联的且被GC的软引用,弱引用以及虚引用
到此这篇关于Java的四种引用方式的文章就介绍到这了,更多相关Java引用方式内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java的四种引用方式

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

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

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

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

下载Word文档
猜你喜欢
  • Java的四种引用方式
    目录1.强引用(StrongReference)2.软引用(SoftReference)3.弱引用(WeakReference)4.虚引用(PhantomReference)5.&n...
    99+
    2022-11-12
  • Java的四种引用方式是什么
    本篇内容主要讲解“Java的四种引用方式是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java的四种引用方式是什么”吧!1.强引用(StrongReference)使用最普遍的引用。只要引...
    99+
    2023-06-25
  • 分享JVM的四种引用方式
    目录前言一、强引用二、软引用三、弱引用四、虚引用前言 Java中提供这四种引用类型主要有两个目的: 可以让程序员通过代码的方式决定某些对象的生命周期;有利于JVM进行垃圾回收 jav...
    99+
    2022-11-13
  • Java的引用类型常用的四种方法
    目录前言强引用FinalReference软引用SoftReference弱引用weakReference虚引用PhantomReference前言 今天看代码看到有牵扯到弱引用的东...
    99+
    2022-11-13
  • Java解析XML的四种方式
    xml文件 <?xml version="1.0" encoding="utf-8" ?> <class> <studen...
    99+
    2022-11-12
  • Java的四种引用是什么
    这篇文章将为大家详细讲解有关Java的四种引用是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。Java的四种引用,用到的场景强引用:垃圾回收器不会回收软引用:如果内存...
    99+
    2022-10-19
  • Java中四种引用详解
    目录强引用软引用弱引用虚引用总结java 中的 4 种引用方式,适用于不同的场景,重点需要理解虚引用,结合文字和代码 强引用 被强引用的对象,不会被垃圾回收器回收,JVM 宁愿抛出 ...
    99+
    2022-11-12
  • Python中引用传参四种方式介绍
    目录引用传参一:​引用传参二:​​引用传参三:​​引用传参四:总结引用传参一: ​​>>> a = 100 #这里的a是不可变类型 >>> d...
    99+
    2022-11-12
  • java 文件拷贝的四种方式
    1. java 移动文件的方式有几种? 在 Java 中,可以使用多种方法来移动文件。 //使用 java.nio.file.Files 类的 move() 方法:import java.nio.fi...
    99+
    2023-09-02
    java servlet jvm
  • Java中的四种引用是什么
    这篇文章主要讲解了“Java中的四种引用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java中的四种引用是什么”吧!首先,从 JDK1.2  开始,对象的引用被划分为4种级...
    99+
    2023-06-16
  • Vue中引入第三方JS库的四种方式
    目录一、绝对路径直接引入,全局可用二、绝对路径直接引入,配置后,import 引入后再使用三、webpack中配置 alias,import 引入后再使用四、webpack 中配置 ...
    99+
    2022-11-13
  • java对接webservice接口的四种方式
    这两天一直在做外系统对接,对方的接口是webservice的形式,调用起来有些蛋疼,于是在这里记录一下我尝试过的调用WebService的三种方式。 方式一:以HttpURLConnection的方式调用 String url ="http...
    99+
    2023-10-21
    java python 开发语言
  • 简述Java中的四种引用类型
    目录简介 强引用 软引用 弱引用 虚引用 简介 从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能更加灵活的控制对象的生命周期。这四种级别由高到低依次为:强引用、软引用...
    99+
    2022-11-12
  • Java常见的四种引用是什么
    这篇文章主要讲解了“Java常见的四种引用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java常见的四种引用是什么”吧!从JDK1.2版本开始,把对象的引用分为四种级别,从而使程序能...
    99+
    2023-06-17
  • Java遍历Map四种方式讲解
    Java中遍历Map的四种方式 在java中所有的map都实现了Map接口,因此所有的Map(如HashMap, TreeMap, LinkedHashMap, Hashtable等...
    99+
    2022-11-12
  • java四种引用类型是什么
    Java中有四种引用类型,它们分别是:1. 强引用(Strong Reference):最常见的引用类型,只要一个对象有强引用与之关...
    99+
    2023-09-28
    java
  • java8中的四种方法怎么引用
    这篇文章主要介绍“java8中的四种方法怎么引用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“java8中的四种方法怎么引用”文章能帮助大家解决问题。1、构造方法引用Test test&n...
    99+
    2023-06-30
  • Python中引用传参的四种方式分别是什么
    这篇文章将为大家详细讲解有关Python中引用传参的四种方式分别是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。引用传参一:>>> a = ...
    99+
    2023-06-22
  • python 调用js的四种方式
    目录1. 前言2. 准备3. 方式一:PyExecJS4. 方式二:js2py5. 方式三:Node.js6. 方式四:PyV87. 最后1. 前言 日常 Web 端爬虫过程中,经...
    99+
    2022-11-12
  • java中遍历ArrayList集合的四种方式
    ArrayList遍历:取出ArrayList集合中的数据方式一:for循环方式二:增强for循环:foreach方式三:Iterator:迭代器方式四:ListIterator:双向迭代器免费视频教程推荐:java在线教程示例如下: pu...
    99+
    2015-11-15
    java教程 java 遍历 ArrayList 方式
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作