
JVM
文章平均质量分 93
FrozenPenguin
冰冻三尺,非一日之寒;水滴石穿,非一日之功。
展开
-
「 JVM 」不容忽视的细节:JVM内存模型和Java内存模型
在 Java 中,JVM 内存模型(JVM Memory Model)和Java 内存模型(Java Memory Model, JMM)都是关于内存的关键概念,但它们处于不同层级,解决的问题也不同。JVM 内存模型关注的是运行时的内存结构,将内存划分为方法区、堆、程序计数器、虚拟机栈和本地方法栈。这些内存区域在 JVM 中具有特定的用途,比如方法区存储类信息和常量,堆则是对象实例的主要存放区。程序计数器用于跟踪当前线程的执行进度,虚拟机栈和本地方法栈则用来维护每个线程的方法调用状态和本地方法信息。原创 2024-11-05 17:06:02 · 1789 阅读 · 0 评论 -
「 JVM 」常见的垃圾收集器Garbage collector(GC)
垃圾收集机制是 Java 的招牌能力,极大地提高了开发效率。这当然也是面试的热点。那么,Java 常见的垃圾收集器有哪些?GC 垃圾收集器是和 JVM 一脉相承的,它是和 JVM 进行搭配使用,在不同的使用场景对应的收集器也是有区别垃圾回收器发展史有了虚拟机,就一定需要收集垃圾的机制,这就是 Garbage Collection,对应的产品我们称为 Garbage Collector。1999年随JDK 1.3.1 一起来的是串行方式的 SerialGc,它是第一款 GC。原创 2023-04-17 08:08:36 · 1290 阅读 · 0 评论 -
「 JVM 」 图解三色标记算法(增量更新与原始快照的实现)
在说 JVM 的三色标记算法之前,我们先来说下 JVM 对于常见对象存活判定算法与垃圾收集算法。常见对象存活判定算法有引用计数算法和可达性分析算法。引用计数法会产生循环引用问题,JVM 默认是通过可达性分析算法来判断对象是否存活的。标记-清除、标记-复制、标记-整理算法以及在此基础上的分代收集算法(新生代/老年代),每代采取不同的回收算法,以提高整体的分配和回收效率。这些垃圾收集算法首先做的都是通过可达性分析算法。原创 2023-03-30 07:15:00 · 2336 阅读 · 0 评论 -
「 JVM 」Java虚拟机是如何判断对象是否死亡的?
我们都知道Java和C++有一个非常大的区别就是Java有自动的垃圾回收机制,经过半个多世纪的发展,Java已经进入了“自动化”时代,让使用者只需要注重业务逻辑的开发而不需要担心内存的使用情况。那么我们为什么还要学习Java的垃圾回收机制呢?原因很简单:我们不想止于“增删改查工程师”这样的初级水平,一旦程序发生了内存溢出、内存泄漏等问题时,我们可以用已掌握的知识更好的调节和优化我们的代码。方法区、Java堆、虚拟机栈、本地方法栈、程序计数器。试想一下,GC(垃圾回收机制)在清理内存的时候第一件事要做什么。原创 2023-03-23 14:35:05 · 1280 阅读 · 0 评论 -
「Java虚拟机基础」Java对象内存布局和对象头
在HotSpot虚拟机里,对象在堆内存中的存储布局可以划分为三个部分:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)。原创 2022-09-04 12:00:00 · 1619 阅读 · 0 评论 -
「 Java内存模型 」浅入深出之JMM(Java Memory Model)
Java内存模型本身是一种概念,并不真实存在,它仅仅描述的是,通过这组规范定义了程序中(尤其是多线程)各个变量的读写访问方式并决定一个线程对共享变量的写入何时以及如何变成对另一个线程可见,关键技术点都是围绕多线程的展开的。...原创 2022-08-24 22:47:31 · 1248 阅读 · 2 评论 -
「 JVM 」 垃圾回收算法详解(标记、清除、压缩(整理)、复制)
JVM是具有垃圾回收机制的,与c/c++不同,Java程序员不需要在写程序的时候考虑垃圾回收的问题,只需要专注代码逻辑即可,一定程度上减轻了程序员的负担。该文章介绍了各种垃圾回收算法的概述、优缺点等。...............原创 2022-07-10 12:00:00 · 2273 阅读 · 0 评论 -
「 JVM基础 」Java双亲委派机制
Java虚拟机对class文件采用的是按需加载的方式,也就是说当需要使用该类时才会将它的class文件加载到内存生成的class对象。而且加载某个类的class文件时,Java虚拟机采用的是双亲委派模式。即把请求交由父类处理,它是一种任务委派模式。......原创 2022-07-09 08:30:00 · 5181 阅读 · 0 评论