为了 接下去 更好理解 JAVA 并发,多线程 JUC 包的原理 特此写下前置学习文章 深入学习 java 虚拟机
本文目录
-
JVM启动流程
-
JVM基本结构
-
内存模型
-
编译和解释运行的概念
一、java 程序 启动流程
启动流程
java 命令开始
寻找 配置文件 定位需要的 .dll
.ddl 初始化 JVM 虚拟机
获得 native 接口
找到main 方法运行
二、JVM结构(运行时数据区)
JVM结构(运行时数据区)
二.一、线程私有的区域
1.程序计数器(PC寄存器)
-
记录正在执行的字节码地址,可辨别当前字节码解析到了什么位置,引导字节码解析顺序,并控制程序的流程。(当前程序执行到哪然后下一步该执行什么操作。)
-
执行java 方法的时候世纪路字节码的地址,执行Native方法这个计数器为空(Undefined)
-
此内存区域是唯一一个在Java虚拟机规范中没有规定任何OutOfMemoryError情况的区域。
-
-
为了线程切换后能恢复到正确的执行位置,每条线程都需要有一个独立的程序计数器,各条线程之间的计数器互不影响,独立存储,我们称这类内存区域为线程私有的内存。
2.栈(VM Stack)
-
栈由一系列帧组成(因此Java栈也叫做帧栈ÿ