虚拟机简介
[返回JVM目录]
阅读更多
此文章为个人简易备忘录,请参考原著《深入了解java虚拟机》
JVM 简介
Java 虚拟机为所有物理机建立了一个统一的运行平台。在任何虚拟机上编译的程序能在任何虚拟机运行,虚拟层面隐藏了底层技术复杂性和操作系统差异性。
此文章为个人简易备忘录,请参考原著《深入了解java虚拟机》
Java 虚拟机为所有物理机建立了一个统一的运行平台。在任何虚拟机上编译的程序能在任何虚拟机运行,虚拟层面隐藏了底层技术复杂性和操作系统差异性。
JVM在执行程序时会把内存分为不同的数据区。
各个区域用途不同,有的区域生命周期和进程相同,有的和线程相同。
拥有小块内存空间,显示当前程序字节码文件行号。字节码解释器可以修改此数值,以此选择下一条字节码指令。(循环,跳转,线程恢复等功能)
在JVM多线程中,每一个线程都会有一个独立计数器,确保线程切换后执行位置正确。该内存为线程私有内存,计数器互不影响。
线程执行Java method 时,计数器记录当前字节码位置。执行Naative时,计数器为undefind。此内存区不规定OutOfMemoryError。
该内存也是线程私有,生命周期和线程相同。
虚拟机栈模拟了Java方法执行过程,即栈帧入栈出栈过程: 执行时创建一个栈帧(Stack Frame),储存局部变量,操作数栈,动态链接方法出口信息。
局部变量存储8种基本数据类型,对象引用 和 returnAddress(指向一个字节码指令地址)
p63
[返回JVM目录]