1、Java虚拟机模型(JVM)
1.1、简述一下Java虚拟机模型(JVM)。
JVM:Java Virtual Machine,Java虚拟机。
我们知道,Java是一个跨平台的语言,其中起主要作用的就是JVM,通俗地讲,JVM可以理解为一个翻译,把class文件翻译成机器码(010101),然后给Linux、Windows等操作系统使用。
JVM主要包括三个部分:类加载过程、运行时数据区和执行引擎。
class文件经过类加载过程被读入内存(运行时数据区),然后再交给执行引擎被翻译成机器码。
我们主要讲一个运行时数据区,从两个维度来讲:线程私有和线程共享。
线程私有:程序计数器、本地方法栈、虚拟机栈。
线程共享:堆、方法区。
线程私有:
程序计数器:
定义:当前线程正在执行的字节码指令的行号指示器。
为什么需要程序计数器:Java是多线程的,意味着会有线程切换,程序计数器可以保证多线程情况下程序能够正常执行。
详细内容:一个java文件被编译成class文件,然后被反编译后,可以看到每行代码前面都有一个数字。这一系列不连续的数字就是程序计数器所记录的东西,
可以简单理解为行号,之所以不连续,是因为每行代码的偏移量不同。
虚拟机栈:
定义:存储当前线程运行方法所需的数据、指令和返回地址等。
说明&#x