
JVM
文章平均质量分 84
记录JVM相关笔记
罗马苏丹默罕默德
寇可往,我亦可往
展开
-
读《深入理解Java虚拟机,JVM高级特性和最佳实践》笔记,垃圾回收的过程
根节点枚举 固定课作为GC Roots的节点主要在全局性的引用(常量或类的静态属性)与执行上下文(例如栈帧中的本地变量表)中, 但当java应用的扩大,则枚举检查他们非常耗时 所有收集器在根节点枚举时必须暂停用户线程(The World!)(**避免在检查期间用户行为改变引用关系,导致不一致?**个人猜想) (CMS,G1,ZGC)等收集器,号称不会(几乎不会)发生停顿,但在枚举根节点时也必须要进行停顿 HotSpot的实际做法: 并不是在用户线程停顿时去枚举根节点,而是使用一组OopMap的数据结构,(在原创 2021-09-21 20:59:06 · 101 阅读 · 0 评论 -
读《深入理解Java虚拟机,JVM高级特性和最佳实践》笔记|垃圾回收概念
方法区的垃圾回收 方法区存放着一些常量(字符串,整型…),类的信息(Class), 且在1.7中位于永久代(Permanent General),发生垃圾收集的可能比较小, 但并非不会进行垃圾收集, 方法区的收集主要分为两部分 1.废弃的常量 当没有引用再指向一个常量时,也就是程序无法再获取到该常量时,(和对象的死亡差不多) 当进行垃圾收集时,垃圾收集器觉得有必要的话,会对该废弃常量进行收集 2.不使用的类型Class类 回收Class类型的条件比较苛刻,必须满足以下条件 该类的所有实例都以回收,也原创 2021-09-18 23:38:20 · 252 阅读 · 0 评论 -
读《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记一
读《深入理解Java虚拟机:JVM高级特性与最佳实践》笔记一 垃圾收集器与内存分配策略 Garbage Collection垃圾收集是所有编程语言都面对的问题, C/C++将它交给程序员来处理,这样当然可以按人们的具体想法来实践内存的管理, 但也提高了处理的难度,所以有必要有自动的内存管理工具,但管理工具的效果又不会达到和人们期望的和程序员自己管理内存所预期的, 所以说简单易用和高效无差是不能同时兼得的吧 1.判断对象是否存活的方法 一.引用计数器 用一个额外的空间用来保存一个对象被引用的次数,当增加一个引原创 2021-09-16 19:47:33 · 183 阅读 · 0 评论