JavaSE-10之JVM

是可运行Java代码的虚拟计算机,包括一套字节码指令集,一组寄存器(是 CPU 内部的数量较少但是速度很快的内存(与之对应的是 CPU 外部相对较慢的 RAM 主内 存)。寄存器通过对常用值(通常是运算的中间值)的快速访问来提高计算机程序运行的速 度)。,一个栈,一个垃圾回收,堆,和一个存储方法区域,

堆:对象

栈:局部变量

本地方法栈:native

程序计数器:要执行的下一行代码

方法区:常量,静态变量

JVM内存分析:

先经过javac命令编译成字节码文件,经Java命令运行这个字节码文件后

虚拟机开始工作

虚拟机大概分为三个部分:类装载子系统,运行时数据区,字节码子系统,

类装载子系统   将字节码文件交由  运行时数据区,

字节码执行引擎执行代码(运行时数据区的代码)

栈是描述方法执行的内存模型,每个方法被调用都会创建一个栈帧(存储局部变量,操作数栈(加减),动态链接(方法符号的内存地址),方法出口)

虚拟机为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数,局部变量)

栈是线程私有,不能实现线层间的共享

是一个连续的内存空间

当一个程序开始运行的时候,虚拟机就开始实例化了,多个程序启动,就会有多个虚拟机实例化,程序退出或者关闭,虚拟机实力消亡,多个虚拟机之间数据不能共享。

垃圾回收算法:

 Mark-Sweep(标记清除)

Copying(拷贝)

Mark-Compact(标记压缩)

常见的垃圾回收器:待完善

你可能感兴趣的:(JavaSE,java)