随笔分类 -  JVM

摘要:Serial 垃圾收集器(单线程、复制算法) Serial(英文连续)是最基本垃圾收集器,使用复制算法,曾经是 JDK1.3.1 之前新生代唯一的垃圾收集器。Serial 是一个单线程的收集器,它不但只会使用一个 CPU 或一条线程去完成垃圾收集工作,并且在进行垃圾收集的同时,必须暂停其他所有的工作 阅读全文
posted @ 2021-12-01 21:45 Zhbeii 阅读(46) 评论(0) 推荐(0) 编辑
摘要:分代收集算法 当前主流 VM 垃圾收集都采用”分代收集”(Generational Collection)算法, 这种算法会根据对象存活周期的不同将内存划分为几块, 如 JVM 中的 新生代、老年代、永久代,这样就可以根据各年代特点分别采用最适当的 GC 算法 在新生代-复制算法 每次垃圾收集都能发 阅读全文
posted @ 2021-12-01 21:02 Zhbeii 阅读(48) 评论(0) 推荐(0) 编辑
摘要:强引用 在 Java 中最常见的就是强引用,把一个对象赋给一个引用变量,这个引用变量就是一个强引用。当一个对象被强引用变量引用时,它处于可达状态,它是不可能被垃圾回收机制回收的,即使该对象以后永远都不会被用到 JVM 也不会回收。因此强引用是造成 Java 内存泄漏的主要原因之一。 软引用 软引用需 阅读全文
posted @ 2021-12-01 20:21 Zhbeii 阅读(226) 评论(0) 推荐(0) 编辑
摘要:引用计数法 在 Java 中,引用和对象是有关联的。如果要操作对象则必须用引用进行。因此,很显然一个简单的办法是通过引用计数来判断一个对象是否可以回收。简单说,即一个对象如果没有任何与之关联的引用,即他们的引用计数都不为 0,则说明对象不太可能再被用到,那么这个对象就是可回收对象。 可达性分析 ​ 阅读全文
posted @ 2021-12-01 20:13 Zhbeii 阅读(37) 评论(0) 推荐(0) 编辑
摘要:Java 堆从 GC 的角度还可以细分为: 新生代(Eden 区、From Survivor 区和 To Survivor 区)和老年代。 新生代 是用来存放新生的对象。一般占据堆的 1/3 空间。由于频繁创建对象,所以新生代会频繁触发MinorGC 进行垃圾回收。新生代又分为 Eden 区、Ser 阅读全文
posted @ 2021-12-01 19:36 Zhbeii 阅读(49) 评论(0) 推荐(0) 编辑
摘要:JVM 内存区域主要分为线程私有区域【程序计数器、虚拟机栈、本地方法区】、线程共享区域【JAVA 堆、方法区】、直接内存 线程私有区域 线程私有区域:生命周期与线程相同,随用户线程的 启动/结束 而 创建/销毁 。 (在 HotspotVM 内,每个线程都与操作系统的本地线程直接映射,因此这部分内存 阅读全文
posted @ 2021-12-01 15:30 Zhbeii 阅读(61) 评论(0) 推荐(0) 编辑
摘要:这里说的线程时程序执行过程中的一个线程实体,JVM允许一个应用并发执行多个线程。Hostspot JVM 中的Java线程与原生操作系统线程有直接映射的关系,当线程所需资源准备好了之后(线程本地存储、缓冲区分配、同步对象、栈、程序计数器等),就会创建一个操作系统原生线程,原生线程初始化完成后,就会调 阅读全文
posted @ 2021-12-01 14:30 Zhbeii 阅读(150) 评论(0) 推荐(0) 编辑

more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示