0
点赞
收藏
分享

微信扫一扫

JVM(内存划分+类加载+GC)

目录

🐲 1. JVM 内存划分

🐲 2. JVM 类加载

🦄 2.1 类型加载是干啥的

🦄 2.2 类加载的简略流程           

🦄 2.3 什么时候会进行类加载

🦄 2.4 双亲委派模型

🐲 3. GC 垃圾回收机制

🦄 3.1 GC 是什么

🦄 3.2 GC 回收哪部分内存

🦄 3.3 GC 具体是怎么回收的

🦖 3.3.1 怎么判定某个对象是否是垃圾 (引用计数/可达性分析) 

🦖 3.3.2 具体是怎么回收的 (标记清除/复制算法/标记整理/分代回收)


🐲 1. JVM 内存划分

Java程序, 就是一个名字为 Java 的进程. 这个进程就是所说的 "JVM"

JVM 就会先从操作系统这里申请一大块内存空间,在这个基础上再把这个内存空间划分成几个小的区域


🐲 2. JVM 类加载

🦄 2.1 类型加载是干啥的


🦄 2.2 类加载的简略流程           

🦄 2.3 什么时候会进行类加载


🦄 2.4 双亲委派模型


🐲 3. GC 垃圾回收机制

🦄 3.1 GC 是什么


🦄 3.2 GC 回收哪部分内存


🦄 3.3 GC 具体是怎么回收的

🦖 3.3.1 怎么判定某个对象是否是垃圾 (引用计数/可达性分析) 

两种常见的,判定对象是否存在引用的方法

1. 引用计数 [不是 JVM 采取的方法, 比如 Python,PHP]

2. 可达性分析 [是 JVM 采用的方法, java]


🦖 3.3.2 具体是怎么回收的 (标记清除/复制算法/标记整理/分代回收)

(1) 标记清除

(2) 复制算法

(3) 标记整理

(4) 分代回收

根据对象的年龄进行分类,把堆中的对象分为了,

新生代(年龄小的对象)    和    老年代 (年龄大的对象)

但是还有个特殊情况就是

举报

相关推荐

0 条评论