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

news2024/11/17 15:38:48

四种引用类型

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

基础知识

强引用:普通使用的引用

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

软引用:

GC内存不够时回收

适用于:当缓存使用

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

弱引用 -> ThreadLocal

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

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

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

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

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

用途:管理堆外内存

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

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

Threadlocal

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

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

threadlocal 中的 entry 是一个弱引用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1610836.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RK3588 linux 修改ulimit 配置

前言 ulimit 主要是用来限制进程对资源的使用情况的,它支持各种类型的限制,常用的有: 内核文件的大小限制进程数据块的大小限制Shell进程创建文件大小限制可加锁内存大小限制常驻内存集的大小限制打开文件句柄数限制分配堆栈的最大大小限制C…

椋鸟数据结构笔记#10:排序·中

文章目录 四、归并排序时间复杂度实现递归实现非递归实现 测试稳定性 五、非比较排序5.1 计数排序时间复杂度实现测试局限性 5.2 桶排序时间复杂度实现测试 5.3 基数排序时间复杂度实现测试局限性 萌新的学习笔记,写错了恳请斧正。 四、归并排序 归并排序是一种非常…

pta L1-063 吃鱼还是吃肉

L1-063 吃鱼还是吃肉 分数 10 全屏浏览 切换布局 作者 陈越 单位 浙江大学 国家给出了 8 岁男宝宝的标准身高为 130 厘米、标准体重为 27 公斤;8 岁女宝宝的标准身高为 129 厘米、标准体重为 25 公斤。 现在你要根据小宝宝的身高体重,给出补充营养的…

java实现识别图片上的文字(OCR识别身份证等证件信息)

利用第三方jar包,实现识别图片上的文字。第三方支持地址:Spire.OCR for Java | 专业的图文识别组件,用以读取图片格式中的文本Spire.OCR for Java 是专为 Java 开发者设计的强大OCR库,提供高效的文字识别功能,能够从图…

Proxy 代理

意图 为其它对象提供一种代理以控制这个对象的访问。 结构 Proxy保存一个引用使得代理可以访问实体;提供一个与Subject的接口相同的接口,使代理可以用来替代实体;控制实体的存取,并可能负责创建和删除它;其他功能依赖…

企业文档知识库建设,数据安全如何保障?

随着现代市场经济的高速发展,企业的竞争优势越来越多体现在人才和科技的优势。而随着员工流动率的提升,随之流失的则是员工积累多年的宝贵工作经验,如果缺乏有效的内部知识库的建设和管理,企业的竞争优势将难以维系。「企业网盘」…

网络管理实验三、SNMP协议工作原理验证与分析

1 实验概括 实验目的: 学习捕获SNMP报文,通过报文分析理解SNMP协议的工作过程。 实验内容: 1) 使用snmputilg发送SNMP数据包; 使用wireshark抓包;使用netstat –an查看代理站TCP/UDP连接表; 2)…

单机调度问题(第i工件的完工时间=加工时间+等待时间)

第08章 制造系统的调度控制 - 百度文库 (baidu.com) 模拟退火单机极小化总流水时间的排序问题_哔哩哔哩_bilibili 在单机调度问题中,工件的完工时间是一个至关重要的指标,因为它直接反映了生产效率的高低。而完工时间的计算,必须同时考虑工件…

cocos creator 3.6 发布web手机端 加载进度条添加

cocos creator 升级到3.x之后加载进度条取消了,测试了多个3.x版本最终以creator 3.6.3版本,构建了简单的进度加载 参考链接: https://forum.cocos.org/t/topic/137113 打包web-mobile后,没有进度条。加载的时候只显示一个黑屏。…

贪吃蛇设计详解

在去年12月中,初次接触c语言,我靠着为数不多的知识,使用数组仿照写了一份贪吃蛇,现在时隔5个月,我已经有能力独立写出真正的贪吃蛇而不是简单的仿照(虽然写的是挺简单的)。 那么我们现在就正式…

在ComfyUI中使用Deforum简单步骤, 以及报错处理

⛳背景 deforum这个插件其实去年就在webui流行的时候火过一阵子,效果的话,因为并没有引入太多“时间”的概念,所以画面基本上每一帧都不一样,但也恰恰因为这个,所以可以产生很多宛若吃了毒蘑菇的视频,后来…

Rokid AR Lite空间计算套装发布,软硬件全面升级推动居家、出行、户外场景大规模应用

4月20日,以“好玩、好看、好上头”为主题的Rokid Open Day 2024发布会在杭州举行,Rokid对外正式发布新一代AR Lite空间计算套装,分享了近期Rokid在AR开发者生态和数字文化领域的进展和成果,并宣布了多项跨行业重磅合作。作为中国代…

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

OerOerlikonTCO1200欧瑞康LPCVD system操作使用说明

javaWeb项目-智能仓储系统功能介绍

项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7 框架:ssm、Springboot 前端:Vue、ElementUI 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog 1、JSP技术 JSP(Jav…

MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)

文章目录 MySQL 列数据跨表拷贝,一句SQL快速将表A每条记录的某些字段拷贝到表B每条记录的某些字段(A、B表通过ID等字段对应)背景定义表填充测试数据跨表一 一对应拷贝列数据SQL参考资料 MySQL 列数据跨表拷贝,一句SQL快速将表A每条…

OSPF动态路由实验(思科)

华为设备参考:OSPF动态路由实验(华为) 一,技术简介 OSPF(Open Shortest Path First)是一种内部网关协议,主要用于在单一自治系统内决策路由。它是一种基于链路状态的路由协议,通过…

漆包线行业你了解多少?专业漆包线行业MES生产管理系统

今天就说说漆包线行业,漆包线是工业电机(包括电动机和发电机)、变压器、电工仪表、电力及电子元器件、电动工具、家用电器、汽车电器等用来绕制电磁线圈的主要材料。 漆包线上游是铜杆行业,下游是各种消费终端,主要是电…

详解数据在内存中的存储

系列文章目录 第一章 C语言基础知识 第二章 C语言控制语句 第三章 C语言函数详解 第四章 C语言数组详解 第五章 C语言操作符详解 第六章 C语言指针详解 第七章 C语言结构体详解 文章目录 1. 数据类型 1.1 基本数据类型 1.2 派生数据类型 2. 整形在内存中的存储 2.1 …

力扣练习题(2024/4/18)

1不相交的线 在两条独立的水平线上按给定的顺序写下 nums1 和 nums2 中的整数。 现在,可以绘制一些连接两个数字 nums1[i] 和 nums2[j] 的直线,这些直线需要同时满足: nums1[i] nums2[j]且绘制的直线不与任何其他连线(非水平线…

kaggle 房价预测 得分0.53492

流程 导入需要的包引入文件,查看内容数据处理调用模型准备训练输出结果 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns from sklearn.model_selection import train_test_split from sklearn.linear_model i…