![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 95
GDUT_Ember
这个作者很懒,什么都没留下…
展开
-
JVM(七):类加载器模型
回顾类加载器:ClassLoader类加载器与类类加载器模型常用的类加载器启动类加载器扩展类加载器应用类加载器双亲委派模型双亲委派模型的工作过程破坏双亲委派模型第一次破坏双亲委派模型第二次破坏双亲委派模型第三次破坏双亲委派模型回顾上一篇已经研究了整个类的加载过程,从加载到最后面的初始化,在类加载过程中,起到比较关键作用的是类加载器,下面就来认识一下这个类加载器是做什么的类加载器:ClassLoader类加载器的作用就是实现可以通过一个类的全限定名来获取描述该类的二进制字节流的动作类加载器与类虽.原创 2021-10-31 15:39:00 · 499 阅读 · 0 评论 -
JVM(六):虚拟机类加载机制
回顾概述类加载的时机类加载的过程加载验证文件格式验证元数据验证字节码验证符号引用验证准备解析类或接口的解析字段解析方法解析接口方法解析初始化回顾上一篇我们已经看过了Class文件的格式,认识了Class文件中描述的各类信息,但Class文件最终都需要被加载虚拟机中之后才能被运行和使用,下面就来看一下JVM虚拟机是如何加载这些Class文件的概述首先来谈谈虚拟机的类加载机制虚拟机的类加载机制是指虚拟机将描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机.原创 2021-10-30 22:05:04 · 539 阅读 · 1 评论 -
JVM(五):类文件结构
平台无关性Class类文件的结构Class的数据类型无符号数表魔数与Class文件的版本常量池CONSTANT_Class_infoCONSTANT_Utf8_infoCONSTANT_Integer_infoCONSTANT_Float_infoCONSTANT_Long_infoCONSTANT_Double_infoCONSTANT_String_infoCONSTANT_Fieldref_infoCONSTANT_Methodref_infoCONSTANT_InterfaceMethod-ref.原创 2021-10-29 22:17:27 · 296 阅读 · 0 评论 -
JVM(四):经典垃圾收集器
回顾垃圾收集器Serial收集器ParNew收集器并发与并行Parallel Scavenge收集器自适应调节策略Serial Old收集器Parallel Old收集器CMS收集器初始化标记并发标记重新标记并发清除Garbage First收集器Mixed GC模式跨引用问题如何解决如何保证用户线程与垃圾清除线程不干扰运行如何建立可靠的停顿预测模型G1收集器的运行流程关于采用的收集算法回顾前面我们已经分析了HotSpot对于垃圾算法的实现了,但也仅仅还是处于理论的阶段,而垃圾收集器正是这些所有理论的.原创 2021-10-23 22:34:23 · 429 阅读 · 0 评论 -
JVM(三):HotSpot的算法细节实现
回顾根节点枚举准确式垃圾回收安全点(SafePoint)缩减垃圾收集器等待时间保证轮询操作的原子性安全区域(Safe Region)记忆集与卡表写屏障伪共享并发情况下的可达性分析增量更新原始快照回顾前面一文了解了垃圾回收如何进行标记,并且认识了三种常用的垃圾清除算法标记清除标记复制标记整理下面就来看下在Java虚拟机是如何来实现这些算法的根节点枚举根节点枚举是优化可达性分析算法中从GC Roots集合找引用链操作的,也就是优化判断是否存活的操作,根节点指的就是GC Roots集合中的G.原创 2021-10-21 20:01:25 · 644 阅读 · 0 评论 -
JVM(二):垃圾收集器与内存分配策略
回顾垃圾收集对象已死引用计数法可达性分析算法再谈引用生存还是死亡回收方法区垃圾收集算法分代收集理论标记——清除算法标记——复制算法Appel式回收标记——整理算法回顾前面我们已经简单认识了,JVM的运行时内存,下面就认识一下Java里面的GC收集与内存分配Java对于内存动态分配与内存回收技术已经很成熟,整体上都是自动化的,但我们仍然需要去了解垃圾回收和内存分配,因为我们需要去排查各种内存溢出、内存泄漏等问题,并且垃圾收集可能会成为高并发量的瓶颈,这一系列的问题就需要我们手动地去给垃圾收集、内存分配.原创 2021-10-19 22:44:30 · 147 阅读 · 0 评论 -
JVM(一):自动内存管理与对象创建
概述JDK、JRE、JVM的关系自动内存管理运行时数据区域程序计数器Java虚拟机栈局部变量表本地方法栈Java堆方法区运行时常量池直接内存对象创建对象创建的并发问题对象的内存布局对象头实例数据对齐填充对象的访问定位两种访问方式的优缺点概述JVM其实指的就是Java虚拟机,要知道Java之所以获得如此广泛的认可,除了它是一门结构严谨、面向对象的编程语言之外,它还摆脱了硬件平台的束缚,实现了"一次编写,到处运行"的概念;还提供了一种相对安全的内存管理和访问机制,避免了绝大部分内存泄漏和指针越界问题;实现.原创 2021-10-16 19:49:50 · 159 阅读 · 0 评论