JUC面试——⭐⭐Java中的四种引用类型/Threadlocal

server/2024/10/18 9:20:54/

四种引用类型

Java 中对象的引用分为四种级别,这四种级别由高到低依次为:强引用、软引用、弱引用和虚引用。

基础知识

强引用:普通使用的引用

强引用是造成 Java 内存泄漏的主要原因之一

软引用:

GC内存不够时回收

适用于:当缓存使用

弱引用⭐面试问的最多):遇到GC就会回收

弱引用 -> ThreadLocal

弱引用:解决某些地方的内存泄露问题

虚引用:直接回收,和没有一样

虚引用的作用:当某个对象被回收时,会发一个通知,知道这个对象被回收了

软引用/弱引用通过 get() 方法可以拿到这个引用的值,但虚引用拿不到这个值

queue 监测:有没有虚引用被回收,并通知

用途:管理堆外内存

JVM:只能通过 gc 管理自己的内存,不能管理不属于自己的内存 

虚引用指向 DirectByteBuffer 时,任何一个对象被回收时,通过监测 Queue 里面有没有对象,知道该对象被清理后要不要清理堆外内存。仍然是 JVM 通过 gc 清理堆外内存。

Threadlocal

threadlocal 结合线程池可以做很多很多东西

threadlocals 可能是从线程池里面拿取的,因此最好养成好习惯,用完 threadlocals 就把它 remove 掉

threadlocal 中的 entry 是一个弱引用


http://www.ppmy.cn/server/5231.html

相关文章

后端开发简介

后端开发是软件开发领域的一个重要组成部分,主要负责构建和维护应用程序的服务器端逻辑、数据处理、系统架构和基础设施。后端开发人员通常专注于处理那些用户看不到但对应用程序功能至关重要的部分,确保数据的安全存储、高效检索、业务逻辑的正确执行以…

java面向对象的继承Shape

* - Shape基类 拥有draw()和erase()两个方法 * - 基于Shape类创建Circle子类 * - 基于Shape类创建Square子类 * - 创建Shape类创建Triangle子类 * - 创建随机形状发生的类(不是子类) * - 定义公共类(测试类),创建Shape类的数组对象长度为10,并为对象数组赋值其内容C…

ARM_day8:基于iic总线的通信

一、IIC总线的基本概念: iic总线是一种带应答的同步的、串行、半双工的通信方式,支持一个主机对应多个从机。它有一根SCL(时钟线)和一根SDA(数据线)组成,由于只有一根数据线,所以它是…

Elasticsearch(1)

目录 115.elasticsearch是什么?基于Lucene的,那么为什么不直接使用Lucene呢? 116.ELK技术栈的常见应用场景? 117.ES索引模板是什么? 118.ES中索引的生命周期管理?

SnapGene Mac激活版 分子生物学软件

SnapGene Mac是一款功能全面、操作便捷的综合性分子生物学软件,专为Mac用户打造。它集成了DNA序列编辑、分析、可视化和团队协作等多种功能,为科研人员提供了一个高效、可靠的分子生物学研究工具。 SnapGene Mac激活版下载 在SnapGene Mac中,…

hcip实验5:ospf综合实验

实验拓扑: 实验目的: 1、R4为ISP,其上只配置IP地址;R4与其他所直连设备间均使用公有IP; 2、R3-R5、R6、R7为MGRE环境,R3为中心站点; 3、整个OSPF环境IP基于172.16.0.0/16划分;除了R…

设备连接IoT云平台指南

一、简介 设备与IoT云间的通讯协议包含了MQTT,LwM2M/CoAP,HTTP/HTTP2,Modbus,OPC-UA,OPC-DA。而我们设备端与云端通讯主要用的协议是MQTT。那么设备端与IoT云间是如何创建通信的呢?以连接华为云IoT平台为例…

IP地址定位:揭秘精准定位的技术与应用

在数字化时代,IP地址已成为连接互联网世界的关键标识之一。但是,很多人对于IP地址的精准定位能力存在疑虑。本文将深入探讨IP地址定位的技术原理以及其在实际应用中的精确度。 IP地址查询:IP数据云 - 免费IP地址查询 - 全球IP地址定位平台 …