随笔分类 -  JVM

摘要:1.对象优先在Eden分配,Eden内存不足,将触发一次minor gc 2.大对象直接进入老年代 可通过设置-XX:PretenureSizeThreshold ,当对象大于这个值,直接分配到老年代(新生代使用的是复制算法,大对象分配到新生代将会触发频繁的复制) 3.长期存活的对象将进入老年代 新 阅读全文
posted @ 2020-01-15 11:38 欧E 阅读(115) 评论(0) 推荐(0)
摘要:JVM的垃圾回收分析,主要从以下几方面进行: 1.如何判断对象是否可回收 2.标记对象可回收的流程 3.垃圾收集算法有哪些 4.基于不同的垃圾收集算法,有哪些垃圾收集器 判断对象是否可回收: 判断对象是否可回收的两种算法: 引用计数算法: 给对象添加一个引用计数器,有对象引用它计数器加1.引用失效就 阅读全文
posted @ 2020-01-14 17:19 欧E 阅读(113) 评论(0) 推荐(0)
摘要:对象在jvm中的创建流程: 对象在jvm中的内存布局: 对象的引用和定位: 通过句柄的方式访问: 优点:对象移动时不需要改变栈中的reference,只需改变句柄池中的指针 缺点:访问需要多访问一次句柄池,才访问真实对象。 通过指针的方式访问: 优点:直接能够访问对象,访问效率高。 缺点:对象移动需 阅读全文
posted @ 2020-01-07 19:46 欧E 阅读(360) 评论(0) 推荐(0)
摘要:运行时数据区如图所示: 程序计数器:当前线程私有的数据内存,用于记录字节码指令执行到哪了。为什么每个线程需要维护一个计数器,因为cpu在同一时刻只能执行一个指令,每个线程又有多个指令要执行,为了能使线程切换回来,知道指令执行到哪了。 是JVM规范中,没有规定任何情况的OutOfMemory的区域。 阅读全文
posted @ 2019-12-30 15:41 欧E 阅读(142) 评论(0) 推荐(0)