JVM
文章平均质量分 92
silence、J
这个作者很懒,什么都没留下…
展开
-
Class类加载过程(一)
一、Class的生命周期一个Class文件经过三个步骤才能加载到内存中:Loading:class文件内是一个个二进制字节,将这些内容装到内存中Linking:该过程又分为3小步verification:校验class文件是否符合标准,比如文件开头不是CAFEBABE,这一步就会失败preparation:把class文件静态变量赋默认值(不是初始值)。如static int i = 8,在这个步骤会先把 i 赋成0而不是8resolution是把class文件常量池里面用到的符号引用,转原创 2021-02-21 16:29:51 · 440 阅读 · 0 评论 -
JVM内存区域小结
1. 运行时数据区(Runtime Data Area)当类被加载入方法区时,就已经开始使用运行时数据区了。根据《Java虚拟机规范》的规定,运行时数据区通常包括这五个部分:方法区、堆、程序计数器、本地方法栈、Java虚拟机栈。如图所示:在JVM规范中虽然规定了程序在执行期间运行时数据区应该包括这几部分,但是至于具体如何实现并没有做出规定,不同的虚拟机厂商可以有不同的实现方式。2. 生命周期程序启动产生进程,一个虚拟机对应一个进程, 其中(橙色):方法区 和 堆 跟进程的生命周期是一致的。随着虚原创 2020-07-19 10:37:19 · 104 阅读 · 0 评论 -
JVM内存区域解析(转载链接)
https://www.cnblogs.com/mrhgw/p/10819234.htmlhttps://www.cnblogs.com/junzi2099/p/8418009.html转载 2020-07-16 17:14:59 · 109 阅读 · 0 评论 -
GC垃圾回收(3)- 三色标记算法
1. CMSCMS过程在上篇文章 GC垃圾回收(2) 中已经写过。它分为四个阶段:1 initial mark (初始标记)2 concurrent mark (并发标记)3 remark (重新标记)4 concurrent sweep (并发清理)其中 并发标记 阶段会有漏标的问题,为解决这个问题,采用了 “三色标记算法”2. G1G1 GC(Garbage First Garbage Collector)是一种服务端应用使用的垃圾收集器,目标是用在 多核、大内存的机器上,它原创 2020-06-30 19:37:17 · 1838 阅读 · 0 评论 -
GC垃圾回收(2)- 常见的垃圾回收器
JDK诞生 Serial追随 提高效率,诞生了Parallel Scavenge,为了配合CMS,诞生了ParNew,CMS是1.4版本后期引入,CMS是里程碑式的GC,它开启了并发回收的过程,但是CMS毛病较多,因此目前没有任何一个JDK版本默认是CMS。并发垃圾回收是因为无法忍受STW1. Serial & Serial OldSerial & Serial Old分别是新生代和老年代的垃圾回收器,串行回收,现在一般不用了。Seriala stop-the-world(ST.原创 2020-06-29 09:43:36 · 188 阅读 · 0 评论 -
GC垃圾回收(1)- 回收算法与分代模型
1. 什么是garbage垃圾?没有任何引用指向的一个对象或者多个对象(循环引用),就是垃圾1.1 Java与C++对于垃圾处理的区别JavaGC处理垃圾开发效率高,执行效率低C++手动处理垃圾忘记回收 -> 会导致内存泄漏回收多次 -> 会造成非法访问开发效率低,执行效率高2. 怎么定位垃圾Java堆中存放着几乎所有的对象实例,垃圾回收器在堆进行垃圾回收前,首先要判断这些对象那些还存活,哪些成为了”垃圾“。定位“垃圾”有如下算法:(1)引用计数法(Referenc原创 2020-06-28 11:39:19 · 517 阅读 · 0 评论