![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM的故事
文章平均质量分 86
菜鸡小张.
这个作者很懒,什么都没留下…
展开
-
JVM的故事——虚拟机字节码执行引擎
执行引擎Java虚拟机的核心组成之一,它是由软件自行实现的,能够执行那些不被硬件直接支持的指令集格式。对于不同的虚拟机实现,执行引擎可能会有解释执行和编译执行或者两种兼备,但是所有执行引擎的输入输出都是一样的,输入的是字节码二进制流,输出的是执行结果。原创 2023-08-31 05:25:46 · 730 阅读 · 1 评论 -
JVM的故事——虚拟机类加载机制
本章将要讲解class文件如何进入虚拟机以及虚拟机如何处理这些class文件。Java虚拟机把class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这个过程被称为虚拟机的类加载机制。这些过程都是在程序运行时发生的,使Java拥有了极高的扩展性和灵活性。原创 2023-08-31 05:11:04 · 573 阅读 · 0 评论 -
JVM的故事——类文件结构
计算机是只认由0、1组成的二进制码的,不过随着发展,我们编写的程序可以被编译成与指令集无关、平台中立的一种格式。原创 2023-08-31 04:13:51 · 778 阅读 · 0 评论 -
JVM的故事—— 内存分配策略
若允许,则用老年代最大可用的连续空间与历次进入老年代的对象平均大小进行对比,若大于,则进行一次有风险的Minor GC,反之进行full GC。当Eden区空间不足分配给新对象时,会进行一次minor GC,回收完没有引用的对象后,先考虑把一些Eden区的对象放到Survivor区,如果放不下,就放到老年代中。对象通常在Eden区诞生,如果经过第一次Minor GC后仍然存活并能被Survivor区存储,该对象就会被移到Survivor区,并且Age(年龄计数器)为1。比如长字符串或者数量庞大的数组。原创 2023-08-31 04:00:13 · 912 阅读 · 0 评论 -
JVM的故事——垃圾收集器
为了应对这种情况,虚拟机提供了一种称为“增量式并发收集器”(Incremental Concurrent Mark Sweep/i-CMS)的CMS收集器变种,这会使垃圾收集的过程变长,用户程序受到的影响小一点。Parallel Scavenge收集器的特点是它的关注点与其他收集器不同,CMS等收集器的关注点是尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。新生代收集器,实质上是serial收集器的多线程版本。原创 2023-08-31 00:34:50 · 541 阅读 · 0 评论