JVM 分代回收

JVM  笔记  Java 

分代回收juejin.cn【GC系列】JVM堆内存分代模型及常见的垃圾回收器-腾讯云开发者社区-腾讯云Eden与Survivor区 · Homurax’s BlogJava 虚拟机之垃圾收集JVM内存分配策略现代JVM堆内存的典型划分:年轻代(Young Generation)老年代(Old Gen

ThreadLocal


ThreadLocal介绍ThreadLocal是JAVA中用于解决线程安全问题的一种机制,它允许创建线程局部变量,即每个线程都有自己独立的变量副本,从而避免了线程间的资源共享和同步问题。从内存结构图,我们可以看到Thread类中,有个ThreadLocal.ThreadLocalMap的成员变量。

深入理解Java拷贝


深入理解Java拷贝浅拷贝(Shallow Copy)浅拷贝会创建一个对象,对于原始对象(被拷贝的对象)中的基本数据类型字段,浅拷贝会直接复制这些值,对于引用类型的字段,浅拷贝会复制这个引用类型字段的地址,而不是复制这个引用类型字段所指向的对象本身。这意味着,如果原始对象中的引用类型字段指向一个对象

深入理解Java反射与泛型:类型擦除与强制类型转换


深入理解Java反射与泛型:类型擦除与强制类型转换在 Java 编程中,反射(Reflection)和泛型(Generics)是两个强大且常用的特性。反射允许我们在运行时检查和操作类、方法、字段等,而泛型则允许我们编写更加通用和类型安全的代码。然而,Java 的泛型机制与类型擦除(Type Eras

JVM分代内存模型:新生代 vs 老年代 vs 永久代/元空间


🌱 JVM分代内存模型:新生代 vs 老年代 vs 永久代/元空间 🧠作为JVM内存管理的核心设计,分代收集理论建立在弱分代假说上:“绝大多数对象的生命周期都很短,只有少数对象会长期存活”我们通过内存划分和不同的GC策略,显著提升垃圾回收效率。下面是结构化详解:一、JVM内存区域的逻辑划分 📦

JVM-为什么使用元空间替代永久代?


1. 决绝永久代内存空间限制问题,降低OOM风险永久代是JVM堆内存的一部分,大小固定且需要通过参数手动设置,难以根据应用实际需求动态调整,加载大量类或者使用大量反射的时候,永久代容易发生内存溢出,调优复杂2. 提高垃圾回收效率,降低Full GC频率永久代的垃圾回收与老年代绑定,且永久代中存放的类

JVM

JVM  Java 

程序计数器 PC记录下一条jvm指令的执行地址特点:每个线程有自己的程序计数器不会存在内存溢出虚拟机栈 JVM STACKS线程运行所需要的内存空间,称为虚拟机栈每个栈由多个栈帧组成,对应着每次方法调用的时候所占用的内存每个线程只能有一个活动的栈帧,对应着当前正在执行的那个方法栈帧每个方法运行时所需

Java中有哪些集合类,简单介绍


Java中有哪些集合类,简单介绍Java中的集合类主要分为两大类: Collection接口和Map接口实现Collection接口的类是存储对象的集合类实现Map接口存储的是键值对Collection接口下又分为List,Set,Queue接口List接口ArrayList: 基于动态数组,查询速

ReentrantLock 核心设计中的两个等待队列

笔记  JUC  Java 

理解这两个队列是掌握 ReentrantLock 乃至整个 Java 并发包(JUC)中锁机制的关键。这两个队列都由 ReentrantLock 的内部工具类 AbstractQueuedSynchronizer (简称 AQS) 来管理。简单来说,这两个队列是:同步队列 (Sync Queue):

AQS

笔记  JUC  Java 

讲讲AQS简单说AQS就是起到了一个抽象,封装的作用,将一些排队,入队,加锁,中断等方法提供出来,便于其它相关JUC锁的使用,具体加锁时机,入队时机等都需要实现类自己控制。英文全称 是AbstractQueuedSynchronizer,AQS的核心是一个FIFO的双向队列,队列中的每个节点都代表一