千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > Java 并发编程解析 |Java 虚拟机结构

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

来源:千锋教育
发布人:qyf
时间: 2022-08-03 15:01:58 1659510118

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万人。不论你是零基础还是想提升,都可以找到适合的班型,千锋教育随时欢迎你来试听。

tags:
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT