
JVM
mingzhao001
一线搬砖工
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【java进阶】java虚拟机垃圾回收详解(三)--垃圾收集器
目录1.Serial收集器2.ParNew收集器3.Parllel Scavenge收集器4.Serial Old收集器5.Parallel Old收集器6.CMS收集器(Concurrent Mark Sweep)7.G1收集器java 虚拟机中的垃圾收集器有Serial,ParNew,Parallel Scavenge,Serial Old,Parallel O...原创 2018-08-30 19:06:19 · 283 阅读 · 1 评论 -
【java进阶】java虚拟机垃圾回收详解(四)--内存分代与回收策略
目录1.并行(Parallel)与并发(Concurrent)2.Minor GC和Full GC3.年轻代4.老年代在讨论回收策略之前,有必要明白以下几个概念:1.并行(Parallel)与并发(Concurrent)并行:多个cpu同时执行一段逻辑代码,是真正的同时。在垃圾收集中指多条回收线程并行工作,此时用户线程处于等待状态并发:指通过CPU调度算法,让用户感...原创 2018-08-31 16:12:12 · 465 阅读 · 0 评论 -
【java进阶】java 虚拟机内存区域划分(JVM)
java虚拟机内存区域划分为:堆,虚拟机栈,本地方法栈,方法区,程序计数器。其中堆,方法区为线程共享区域,其他区域为线程私有的。1.程序计数器(Program Counter Register) 程序计数器是一块很小的内存空间,是当前线程所执行的字节码的行号指示器。字节码解释器工作就是通过改变程序计数器的值来选取下一条执行的字节码指令。2.虚拟机栈(Java Virtual Mac...原创 2018-08-29 16:21:12 · 220 阅读 · 0 评论 -
【java进阶】java虚拟机垃圾回收详解(一)--判断对象已死
说起垃圾回收,应该思考三个问题。1.那些区域需要回收?2.什么时候回收?3.怎么回收?参考上一篇文章谈到的java虚拟机内存区域划分,我们知道,jvm内存区域中虚拟机栈,本地方法栈,程序计数器都属于线程私有的。这三个区域随线程生而生,随线程死而灭。栈中的栈帧随着方法的进入和推出有条不紊的进行着入栈和出栈操作。每一个栈帧分配多少内存基本上在类结构确定下来的时候就已知。而堆和方法区属于...原创 2018-08-30 11:30:29 · 168 阅读 · 0 评论 -
【java进阶】java虚拟机垃圾回收详解(二)--垃圾收集算法
上一篇文章介绍了,java虚拟机怎么判断一个对象是否可以回收。本文介绍一下垃圾收集算法。1.标记-清除 算法顾名思义,“标记-清除”算法分为“标记”和“清除”两个阶段。首先标记出所需要回收的对象,然后统计清除这些标记的对象。标记以后的内存区域:活动 已标记 活动 已标记 已标记 活动 已标记 活动 已标记 已标记 活动 ...原创 2018-08-30 12:37:52 · 133 阅读 · 0 评论 -
【java进阶】java虚拟机垃圾回收详解(五)--类加载机制
目录1.什么时候去加载一个类2.类的加载过程2.1 加载2.2 验证2.2.1 文件格式验证2.2.2 元数据验证2.2.3 字节码验证2.2.4 符号引用验证2.3 准备2.4 解析2.5 初始化Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加...原创 2018-09-03 18:07:39 · 436 阅读 · 0 评论 -
【java进阶】java虚拟机垃圾回收详解(六)--类加载器
类加载器最初是由java Applet需求而开发出来的,现在java Applet技术基本死掉。但是类加载器却在类的层次划分,OSGi,热部署,代码加密等领域大放异彩。类加载器不只是把类加载在虚拟机中,对于任意一个类,都需要类加载器和类本身决定其在Java虚拟机中的唯一性。每一个类加载器都拥有独立的类名称空间。比如两个类是否相等要在这两个类被同一个类加载器加载的前提下才有意义。否则,即使两...原创 2018-09-03 20:56:45 · 313 阅读 · 0 评论