今天对JVM虚拟机做了一个基础的认识。
1、JVM内部的基本组成部分。
①堆:存放用new创建出来的对象和数组。
②方法区:存放类信息、静态变量、常量以及即时编译器编译后的代码。
③虚拟机栈:生命周期和线程相同,存放局部变量表、操作数栈、动态链接、方法出口等信息。
④本地方法栈:同虚拟机栈一样,只不过是为Native方法服务的。
⑤程序计数器:当前线程执行字节码的行号指示器。
2、类在JVM的生命周期
①加载:获取.class文件的二进制流,加载类信息、静态变量以及字节码。
②验证:确保.class文件中的字节码是符合虚拟机规则的,不会危害虚拟机自身的安全。
③准备:为类变量分配内存并设置其初始值。
④解析:虚拟机阶段将常量池的符号引用替换成为直接引用。
⑤初始化:给static变量赋予用户指定的值以及执行静态代码块。
⑥使用
⑦卸载
JVM虚拟机还有许多知识内容,但是总感觉模模糊糊的,没有融会贯通。需要沉淀啊。。。。