全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

Java 并发编程解析 |Java 虚拟机结构

发布时间:2022-08-03 15:01:58
发布人:qyf

2

  从组成结构上看,一个Java 虚拟机(HotSpot 为例),主要包括指令集合,指令解析器,程序执行指令 等3个方面,其中:

  指令集合:指的是我们常说的字节码(Byte Code),主要指将源文件代码(Source File Code) 编译运行生成的,比如在Java中是通过javac命令编译(.java)文件生成,而在Python中是通过jython命令来编译(.py)文件生成。

  指令解析器:主要是指字节码解释器(Byte Code Interpreter)和即时编译器(JIT Compiler),比如一个Java 虚拟机(HotSpot 为例),就有一个字节码解释器和两个即时编译器(Server编译器和Client 编译器)。

  程序执行指令: 主要是指操作内存区域,以装载和执行,一般是JVM负责 将 字节码 解释成具体的机器指令来执行。

  一般来说,任何一个Java虚拟机都会包含这三个方面的,但是具体的有各有所不同:

  字节码指令:JVM 具有针对以下任务组的字节码指令规范:加载和存储,算术,类型转换,对象创建和操作,操作数栈管理(push/pop),控制转移(分支),方法调用和返回,抛出异常,基于监视器的并发。被加载到JVM后可以被执行,其中字节码是实现跨平台的基础。

  字节码解释器:用于将字节码解析成计算机能执行的语言,一台计算机有了 Java 字节码解释器后,它就可以运行任何 Java 字节码程序。同样的 Java 程序就可以在具有了这种解释器的硬件架构的计算机上运行,实现了“跨平台”。

  JIT即时编译器:JIT 编译器可以在执行程序时将 Java 字节码翻译成本地机器语言。一般来讲,Java 字节码经过 字节码解释器执行时,执行速度总是比编译成本地机器语言的同一程序的执行速度慢。而 即时编译器 在执行程序时将 Java 字节码翻译成本地机器语言,以显著加快整体执行时间。

  JVM 操作内存:JVM 有一个堆( heap )用于存储对象和数组。垃圾回收器要在这里工作。代码、常量和其他类数据存储在方法区( method area )中。每个 JVM 线程也有自己的调用栈( JVM stack ),用于存储 “帧”。每次调用方法时都会创建一个新的 帧(放到栈里),并在该方法退出时销毁该帧。每个帧提供一个操作数堆栈 ( operand stack)和一个局部变量数组 ( local variables )。操作数栈用于计算操作数和接收被调用方法的 “返回值”,而局部变量数据用于传递“方法参数”。

  除此之外,每个特定的主机操作系统都需要自己的 JVM 和运行时实现。

  更多关于“java培训”的问题,欢迎咨询千锋教育在线名师。千锋教育多年办学,课程大纲紧跟企业需求,更科学更严谨,每年培养泛IT人才近2万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

相关文章

office是什么软件类型?

office是什么软件类型?

2023-10-14
Cloud-IDE 是什么?

Cloud-IDE 是什么?

2023-10-14
主机和端系统之间有什么不同?

主机和端系统之间有什么不同?

2023-10-14
进程和线程有什么联系和区别?

进程和线程有什么联系和区别?

2023-10-14

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取