
JVM
文章平均质量分 93
lueluelue47
这个作者很懒,什么都没留下…
展开
-
【JVM】类加载过程精炼总结
类加载过程Class文件需要加载到虚拟机中才能运行,虚拟机加载Class类型文件主要的步骤如下:加载、验证、准备、初始化这4个过程过程是按照这种顺序按部就班地开始的,而解析阶段不一定;按顺序开始,而不是进行,因为这些阶段通常是相互交叉地混合进行的;问题:什么时候必须立即对类进行“初始化”加载、验证、准备自然需要在此之前开始;遇到new、getstatic、putstatic或invokestatic这四条字节码指令时,代码场景:能够生成这四条指令的典型Java代码场景:使用原创 2022-03-11 16:44:32 · 1131 阅读 · 0 评论 -
【JVM】垃圾回收机制,真通俗易懂
堆内存的划分分为三个部分(以下名词表示同一个区):新生区、新生代、年轻代养老区、老年区、老年代永久区、永久代划分区域的目的唯一目的就是优化GC性能。如果没有分代,我们所有的对象都放在一块,GC的时候我们需要对堆的所有区域进行扫描。而很多的对象都是“朝生夕死”的,如果把创建的新的对象都放在某一地方,当GC的时候就先把“朝生夕死”对象的区域进行回收,这样就会腾出很多大的空间来。一、新生区的垃圾回收机制新生区分为:Eden区、Survivor0区、Survivor1区(也称为from原创 2022-02-24 21:10:36 · 735 阅读 · 0 评论 -
【JVM】Java内存区域详解(通俗易懂系列)
Java虚拟机拥有管理内存的权利。一、运行时数据区在Java程序执行的过程中,Java虚拟机会将它管理的内存分为若干个不同数据区域(JDK1.8与之前版本不同)线程私有:虚拟机栈本地方法栈程序计数器线程共享:堆方法区直接内存(非运行时数据区的一部分)1 程序计数器可看做当前线程所执行的字节码的**行号指示器**特点:线程私有生命周期:与线程共存亡一块较小的内存空间,存储字节码行号;是唯一一块不会出现OutOfMemoryError的内存区域;原创 2022-03-08 17:56:50 · 4883 阅读 · 1 评论