深入学习JVM
文章平均质量分 91
学习JVM的知识点,包括类加载机制,内存区域划分,分代模型,垃圾回收机制,垃圾回收器,GC流程,JVM参数配置与优化
湘水友独
coding
展开
-
JVM学习笔记
Java程序是如何运行起来的 编写java代码 编译java代码,编译成class字节码文件 JVM类加载器加载class文件 JVM字节码执行引擎执行class文件 类加载器 JVM通过类加载器加载class字节码文件 类加载过程 加载—》验证—》准备—》解析—》初始化—》使用—》卸载 加载: 按需加载,当代码中用到这个类的时候 验证阶段:根据JVM规范,验证加载进来的class文件是否符合规范,内容是否完整 【核心】准备阶段:给类分配内存空间,给static变量分配内存空间,设置初始原创 2021-05-04 16:39:49 · 249 阅读 · 1 评论 -
JVM类加载机制
我们都知道自己编写的Java程序编译成".class"文件后是需要加载到虚拟机中之后才能运行和使用。那么虚拟机是如何加载这些class文件的呢? 类的生命周期 类从被加载到虚拟机开始,到卸载出内存为止,它的整个生命周期包括:加载、验证、准备、解析、初始化、使用和卸载7个阶段。 加载–>验证–>准备–>初始化–>卸载,这五个阶段的顺序是确定的,类的加载过程必须按照这种顺序按...原创 2020-04-07 23:10:25 · 94 阅读 · 0 评论 -
Java虚拟机内存结构
当我们将类加载到JVM中后,JVM会将内存划分为不同的数据区域,不同的区域有不同的用途,主要包括以下几个运行时数据区域,如下图所示。 方法区 方法区是在JDK1.8以前版本里的一块内存区域,是线程共享的内存区域。用于存储被虚拟机加载进来的类信息、常量、静态变量、即时编译器编译后的代码等数据,有个别名叫做NonHeap(非堆),目的是与Java堆区分开来。 但在JDK1.8以后,这块区域的名字改了...原创 2020-04-06 15:56:07 · 99 阅读 · 0 评论