![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深入理解Java虚拟机
文章平均质量分 93
倜傥村的少年
永远斗志昂扬
展开
-
第十三章 线程安全与锁优化
的线程争用同一个锁的情况,那轻量级锁就不再有效,必须要。原创 2024-01-16 15:38:41 · 871 阅读 · 0 评论 -
第十二章 Java内存模型与线程(二)
Java 目前的并发编程机制就与上述架构趋势产生了一些矛盾, 1: 1 的内核线程模型是如今 Java 虚拟机线程实现的主流选择,但是这种映射到操作系统上的线程天然的缺陷是切换、调度成本高昂,系统能容纳的线程数量也很有限。 广义上来讲,一个线程只要不是内核线程,都可以认为是用户线程(User Thread, UT)的一种,因此从这个定义上看,轻量级进程也属于用户线程,但轻量级进程的实现始终是建立在内核之上的,许多操作都要进行系统调用,因此效率会受到限制,并不具备通常意义上的用户线程的优点。原创 2024-01-15 22:44:10 · 965 阅读 · 0 评论 -
第十二章 Java内存模型与线程(一)
Java基础之内存模型与线程原创 2024-01-13 17:52:56 · 881 阅读 · 0 评论 -
第十一章 后端编译与优化
最爱的Java原创 2024-01-11 15:35:13 · 1105 阅读 · 0 评论 -
第十章 前端编译与优化
前端编译器: JDK 的 Javac、 Eclipse JDT 中的增量式编译器( ECJ)即时编译器: HotSpot 虚拟机的 C1(客户端)、 C2(服务端) 编译器, Graal 编译器(仍然在实验)。提前编译器: JDK 的 Jaotc、 GNU Compiler for the Java(GCJ) [2]、 ExcelsiorJET 我们可以这样认为, Java 中即时编译器在运行期的优化过程,支撑了程序执行效率的不断提升;原创 2024-01-10 17:16:48 · 885 阅读 · 0 评论 -
第八章 虚拟机字节码执行引擎
局部变量表的容量以**变量槽( Variable Slot)**为最小单位。原创 2024-01-09 19:42:01 · 1040 阅读 · 0 评论 -
第七章 虚拟机类加载机制
但是jdk中有类A就需要使用这个类,实际运行的时候肯定不是用的接口,而是实现类,在加载类A的时候是bootstrap加载的发现类B的实现类C还未加载,则去加载类C,这里默认先用类A的加载器去加载,类C并不是在bootstrap加载的范围内的,而且按照双亲委派机制,是要从bootstrap往上找加载器的,很显然找不到,所以只能从线程上下文类加载器去加载。这阶段的验证是基于二进制字节流进行的,只有通过了这个阶段的验证之后,这段字节流才被允许进入 Java 虚拟机内存的方法区中进行存储,但是对于初始化阶段,原创 2024-01-08 21:15:48 · 795 阅读 · 0 评论 -
第三章 垃圾收集器与内存分配策略(三)
ZGC 收集器是一款基于Region 内存布局的,(暂时)不设分代的,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的,以低延迟为首要目标的一款垃圾收集器。ZGC 的染色指针是最直接的、最纯粹的,它直接把标记信息记在引用对象的指针上,这时,与其说可达性分析是遍历对象图来标记对象,还不如说是遍历“引用图”来标记“引用”了。G1会随着堆变大,停顿的时间变长,原因也很容易理解,需要标记的对象越来越多了。对对象的种种标记不再是放在对象的本身属性上,而是放在了指向对象的引用身上。原创 2024-01-06 22:56:19 · 933 阅读 · 0 评论 -
第三章 垃圾收集器与内存分配策略(二)
几款经典的垃圾收集器原创 2024-01-05 17:22:23 · 837 阅读 · 0 评论 -
第三章 垃圾收集器与内存分配策略(一)
在对象中添加一个引用计数器,每当有一个地方引用他,计数器值就加一;当引用失效时,计数器值就减一;任何时刻计数器为零的对象就是不可能再被使用的。问题:无法解决循环引用。原创 2024-01-03 20:30:56 · 895 阅读 · 0 评论 -
第二章 Java内存区域与内存溢出异常
为你提供优质的JVM笔记原创 2023-12-29 15:32:16 · 912 阅读 · 0 评论