深入理解JVM
0 人感兴趣 · 24 次引用
- 最新
- 推荐

JVM 专题 01- 类加载机制详解
从类加载时机、类加载过程、类加载器工作原理出发,深入梳理总结虚拟机类加载机制原理。

JVM 垃圾回收器 G1
G1 收集器是一款面向服务端应用的垃圾收集器,主要针对多 CPU 以及大容量内存的场景,在缩短 STW 的同时,具备高吞吐的特征(大概率)。在启动 JVM 参数加上 -XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200 启用 G1 作为垃圾回收器。
JVM 垃圾回收器 CMS
CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间的老年代垃圾回收器,基于“标记-清除”算法的“多线程”垃圾回收。对于要求服务器响应速度的交互式应用,这种垃圾回收器非常适合。在启动 JVM 参数加上 -XX:+UseConcMarkSweepGC 启
JVM 垃圾回收机制
垃圾回收(Garbage Collection,GC)针对堆(以及方法区)中的垃圾数据进行清理,防止内存泄漏,有效的使用可以使用的内存。
JVM 运行时数据区
JVM 的内存在不同的运行时数据区进行操作。包括方法区(method area)、堆(heap)、栈(stacks)、程序计数器(program counter registers)、本地方法栈(native method stacks)。其中堆、方法区是线程共享的,栈、本地方法栈、计数器是线程隔离的。


豆瓣 9.0,35 万读者“搜不到信息”的神秘作者,我们帮你找到了
导读:这次采访起源来自于我和豆瓣的一位读者有同样的好奇心,为什么网上搜不到周志明老师的更多信息?为什么“80后玩家”可以把本本书都维持在9.0分左右?他的“社恐”到底有多严重?

深入理解 JVM 垃圾回收机制 - 运行时栈帧的内存变化
引用在JVM垃圾回收中是一个特别重要的概念,毕竟垃圾回收是从枚举GC Roots开始的,栈帧中的局部变量是GC Roots中非常重要的组成部分,所以正确的理解运行时栈帧的内存结构变化,也算是理解垃圾回收的开端吧。

深入理解 JVM 垃圾回收机制 - 对象的内存布局
在Java语言层面,可以通过Class类来描述普通的Java类,当JVM创建对象的同时,会生成对应的Class对象,用来描述此对象的大致模型,这也是反射的基础。那么在JVM的内部是如何描述一个普通的对象?


深入理解 JVM 垃圾回收机制 - 何为垃圾?
从诞生之初,人们就在思考GC需要完成的3件事情:何为垃圾?何时回收?如何回收?垃圾收集器在对内存进行回收前,第一件事就是要确定这些对象之中哪些还”活着“,哪些已经”死去“,而这些”死去“的对象,也就是我们所说的垃圾。


一文入门 JVM 虚拟机
jdk的全称是Java Development kit(java开发工具包),我们可以把程序设计语言、java虚拟机、java类库这三部分统称为jdk,jdk是用于支持java程序开发的最小环境。。

深入理解 JVM 内存管理 - 方法区
JVM在执行Java程序时会把其所管理的内存划分成多个不同的数据区域,每个区域的创建时间、销毁时间以及用途都各不相同,本文介绍方法区以及如何阅读字节码。



深入理解 JVM 类加载机制
Java代码在编译过后,想要被运行和使用,经过的第一个步骤就是将编译后的字节码文件加载的虚拟机,那虚拟机是如何把字节码文件加载到虚拟机的呢?