5.2 Java虚拟机的生命周期
1.java虚拟机:规范,规范的实现,虚拟机实例。
2.如果在一台计算机上运行3个java程序,将启动3个java虚拟机。
3.Java虚拟机有两种线程:守护线程和非守护线程。守护线程是虚拟机自己用的,比如垃圾收集。初
始线程就是调用main的那个线程是非守护线程。当所有的非守护线程结束,java虚拟机退出。
5.3 Java虚拟机的体系结构
1.虚拟机中的方法区和堆是由所有线程共享的。
2.每当一个新线程被创建时,它都会得到自己的PC寄存器(存储指令)和一个java栈(存储方法调用
的状态,包括局部变量,参数,返回值,中间结果等等)。
3.Java栈是由许多栈帧组成的,一个栈帧包含一个java方法。
4.Java虚拟机的数据类型分为基本类型和引用类型。
5.类装载器的工作流程:(1)装载:查找并装载类型的二进制数据
(2)连接:执行验证(确保被导入类型的正确性),准备(为类变量分配内存并将其初始化为默认值
),以及解析(将符号引用转化为直接引用)。
(3)初始化:将类变量初始化为正确的初始值。
6.每个Java虚拟机实现必须有一个启动类装载器,知道如何装载受信任类。