每日一记--JVM虚拟机01

  今天对JVM虚拟机做了一个基础的认识。

1、JVM内部的基本组成部分。

①堆:存放用new创建出来的对象和数组。

②方法区:存放类信息、静态变量、常量以及即时编译器编译后的代码。

③虚拟机栈:生命周期和线程相同,存放局部变量表、操作数栈、动态链接、方法出口等信息。

④本地方法栈:同虚拟机栈一样,只不过是为Native方法服务的。

⑤程序计数器:当前线程执行字节码的行号指示器。

2、类在JVM的生命周期

①加载:获取.class文件的二进制流,加载类信息、静态变量以及字节码。

②验证:确保.class文件中的字节码是符合虚拟机规则的,不会危害虚拟机自身的安全。

③准备:为类变量分配内存并设置其初始值。

④解析:虚拟机阶段将常量池的符号引用替换成为直接引用。

⑤初始化:给static变量赋予用户指定的值以及执行静态代码块。

⑥使用

⑦卸载

JVM虚拟机还有许多知识内容,但是总感觉模模糊糊的,没有融会贯通。需要沉淀啊。。。。

原文地址:https://www.cnblogs.com/ZNwithLC/p/9479001.html