网站建设市场分析2015,北京网站建设华网天下买送两年,wordpress编辑器失效,怎么做会员积分网站JDKJREJVMJVM运行时内存结构图方法区堆区栈区程序计数器本地方法栈 JVM 的主要组成部分及其作用 JDKJREJVM JVM就是java虚拟机#xff0c;一台虚拟的机器#xff0c;用来运行java代码 但并不是只有这台机器就可以的#xff0c;java程序在运行时需要依赖… JDKJREJVMJVM运行时内存结构图方法区堆区栈区程序计数器本地方法栈 JVM 的主要组成部分及其作用 JDKJREJVM JVM就是java虚拟机一台虚拟的机器用来运行java代码 但并不是只有这台机器就可以的java程序在运行时需要依赖系统的类库那么加上这些类库就会形成完整的运行环境我们称为JRE 对于开发人员我们还需要一些编写代码的各种编译工具加上这些工具就会形成我们的JDK也就是java开发工具包
JVM运行时内存结构图 方法区和堆区是所有线程共享的 栈区、程序计数器、本地方法栈是线程独立的也就是说每个线程在里面都有独立的区域它们不共享
方法区
存储类的信息
堆区
新生代伊甸区、幸存者区、幸存者区、老年代
栈区
每个线程开辟独立栈栈帧中包含局部变量表操作数栈等等
程序计数器
使用地址对字节码指令
其实就是PC寄存器通过它来记录程序运行的一条一条的指令在内存里找到该指令并执行通过不断修改寄存器里面的内容就可以定位不同的指令找到该指令在内存里面的位置并执行
本地方法栈
跟java栈类似针对C等语言的本地方法栈
JVM 的主要组成部分及其作用
JVM包含两个子系统和两个组件两个子系统为Class loader(类装载)、Execution engine(执行引擎)两个组件为Runtime data area(运行时数据区)、Native Interface(本地接口)。
Class loader( 类 装 载 ) 根 据 给 定 的 全 限 定 名 类 名 ( 如 java.lang.Object)来装载class文件到Runtime data area中的methodarea。Execution engine执行引擎执行classes中的指令。Native Interface(本地接口)与native libraries交互是其它编程语言交互的接口。Runtime data area(运行时数据区域)这就是我们常说的JVM的内存。
作用 首先通过类加载器会把 Java 代码转换成字节码
其次运行时数据区再把字节码加载到内存中而字节码文件只是 JVM 的一套指令集规范并不能直接交给底层操作系统去执行
于是需要特定的命令解析器执行引擎将字节码翻译成底层系统指令再交由 CPU 去执行;
最后此过程中需要调用其他语言的本地库接口来实现整个程序的功能。