
JVM
内存结构、类加载、GC学习分享
GG_Lou
风流阵里急先锋,牡丹花下赵子龙
展开
-
JVM GC_垃圾回收算法
标记-清除算法 优势 速度快 劣势 会有内存碎片 标记-整理算法 优势 不会有内存碎片 劣势 速度慢 复制算法 优势 速度快 不会有内存碎片 劣势 速度快 不会有内存碎片 劣势 需要额外的内存空间 ...原创 2021-03-15 15:06:35 · 134 阅读 · 0 评论 -
JVM GC_四种引用
强引用 被GC ROOTS强引用的对象需要在所有强引用断开后才可被GC 软引用 被GC ROOTS软引用对象只有再可能发生内存泄漏的时候,才会被GC 可配合引用队列 弱引用 只要发生GC就会被回收 可配合引用队列 虚引用 虚引用一般指的是配合ByteBuffer使用,虚引用的引用者被回收的时候,虚引用对象进入引用队列,Reference Handler线程调用相关方法释放直接内存 必须配合引用队列 终结器引用 终结器引用的引用这被回收的时候,会讲终结器引用放入引用队列,暂不回收,之后.原创 2021-03-15 14:50:30 · 203 阅读 · 0 评论 -
JVM GC_ 如何判断对象是否可以被GC?
如何判断对象是否可以被GC? 引用计数法 当某个对象的引用计数归零的时候,可以被GC,比较麻烦的地方是下面这种循环引用会带来弊端 可达性分析 方法区、栈、本地方法区、程序计数器不参与GC 凡是被GC ROOT引用的对象都不可以被GC回收 GC ROOT包括以下三方面 栈中局部变量及其引用 方法区中静态变量、常量及其引用 本地方法(native打头)中引用对象 ...原创 2021-03-15 09:27:07 · 783 阅读 · 0 评论 -
JVM内存结构_对象实例空间分配
编译不优化 正常情况下,对象实例都是存在堆内存之中,对象引用存在栈内存 运行时优化 JVM底层会有一个逃逸分析的优化,当JVM检测到对象的作用域,当能确定对象会随着栈帧出栈被销毁的情况下,对象是会放在栈内存之中的 ...原创 2021-03-14 17:11:41 · 92 阅读 · 0 评论 -
JVM内存结构_线程共享和独享
线程独享 虚拟机栈区 本地方法栈 程序计数器 线程共享 方法区 虚拟机堆区 除此之外的麻烦点 虚拟机堆区,准确说是新生代伊甸区,会分配一小部分内存空间(1%左右)给线程来解决指针碰撞的问题,这部分区域在分配的时候是线程独享的,使用的时候是线程共享的 ...原创 2021-03-14 16:57:53 · 502 阅读 · 0 评论