当前位置:网站首页>JVM(1):介绍、结构、运行和生命周期
JVM(1):介绍、结构、运行和生命周期
2022-06-11 04:05:00 【游王子】
一、虚拟机
所谓虚拟机(Virtual Machine),就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令。大体上虚拟机可分为系统虚拟机和程序虚拟机。
- 大名鼎鼎的Visual Box,VMWare就属于系统虚拟机,它们完全是对物理计算机的仿真,提供了一个可运行完整操作系统的软件平台。
- 程序虚拟机的一个典型代表就是java虚拟机,它专门为执行单个计算机程序而设计,在java虚拟机中执行的指令我们称为java字节码指令。
无论是系统虚拟机还是程序虚拟机,在上面运行的软件都被限制于虚拟机提供的资源中。
二、java虚拟机
java虚拟机是一台执行java字节码的虚拟计算机,它拥有独立的运行机制,其运行的java字节码也未必是由java语言编译而成。
JVM平台的各种语言可以共享java虚拟机带来的跨平台性,优秀的垃圾回收机制以及可靠的即时编译器。java技术的核心就是java虚拟机(JVM,Java Virtual Machine),因为所有的java程序都运行在java虚拟机内部。
作用
java虚拟机就是二进制字节码的运行环境,负责装载字节码到其内部,解释/编译为对应平台上的机器指令执行。每一条java指令,java虚拟机规范中都有详细定义,如怎么取操作数,怎么处理操作数,处理结果放在哪里。
特点
- 一次编译,到处运行。
- 自动内存管理。
- 自动垃圾回收功能。
三、JVM的位置

JDK的构成

四、JVM整体结构
- Hotspot VM是目前市面上高性能虚拟机的代表作之一。
- 它采用解释器与即时编译器并存的架构。
- 在今天,Java程序的运行性能早己脱胎换骨,已经达到了可以和C/C++程序一较高下的地步。

方法区和堆是多个线程共享的,而java栈、本地方法栈和程序计数器为每个线程独有一份。
执行引擎

红色框中就是执行引擎,从左到右分别为:解释器、JIT即时编译器、垃圾回收器。
JIT即时编译器为编译器的后端(java源码编译为class文件也可以成为编译器前端),因为字节码文件无法调用本地机器程序的,需要将字节码编译为本地机器语言。
五、java代码执行流程

下图为详细图:

- 解释执行:保证响应时间,逐行对字节码文件进行响应执行。
- 编译执行:将重复性较高的字节码(热点代码)编译为机器指令(二次编译)并缓存起来。
六、JVM架构模型
Java编译器输入的指令流基木上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。具体来说,这两种架构之间的区别:
基于栈式架构的特点
- 设计和实现更简单,适用于资源受限的系统。
- 避开了寄存器的分配难题:使用零地址指令方式分配。
- 指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈。指令集更小,编译器容易实现。
- 不需要硬件支持,可移植性更好,更好实现跨平台。
基于寄存器架构的特点
- 典型的应用是x86的二进制指令集;比如传统的Pc以及Android的Davlik虚拟机。
- 指令集架构则完全依赖硬件,可移植性差
- 性能优秀和执行更高效。
- 花费更少的指令去完成一项操作。
- 在大部分情况下,基于寄存器架构的指令集往往都以一地址指令、二地址指令和三地址指令为主,而基于栈式架构的指令集却是以零地址指令为主。

总结:
由于跨平台性的设计,Java的指令都是根据栈来设计的。不同平台CPU架构不同,所以不能设计为基于寄存器的。优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令。
时至今日,尽管嵌入式平台已经不是Java程序的主流运行平台了(准确来说应该是HotSpotVM的宿主环境已经不局限于嵌入式平台了),那么为什么不将架构更换为基于寄存器的架构呢?
七、JVM生命周期
虚拟机的启动
Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。
虚拟机的执行
- 一个运行中的Java虚拟机有着一个清晰的任务:执行Java程序。·
- 程序开始执行时它才运行,程序结束时它就停止。
- 执行一个所谓的Java程序的时候,真真正正在执行的是一个叫做Java虚拟机的进程。
虚拟机的退出
有如下的几种情况:
- 程序正常执行结束
- 程序在执行过程中遇到了异常或错误而异常终止
- 由于操作系统出现错误而导致Java虚拟机进程终止
- 某线程调用Runtime类或system类的exit方法,或Runtime类的halt方法,并且Java安全管理器也允许这次exit或halt操作。
- 除此之外,JNI ( Java Native Interface)规范描述了用JNI Invocation API来加载或卸载Java虚拟机时,Java虚拟机的退出情况。
边栏推荐
- Pci/pcie related knowledge
- Final review of software engineering notes (short answer)
- 司马炎爷爷 告诉你什么叫做内卷!
- 2022 love analysis · privacy computing vendor panoramic report | love Analysis Report
- 数据类型的转换和条件控制语句
- Market prospect analysis and Research Report of denitrification unit in 2022
- [laser principle and application-2]: key domestic laser brands
- JVM(7):动态链接、方法的调用、四种方法调用指令区分非虚方法和虚方法、invokedynamic指令的使用
- Safe and borderless, Guanghe tongdai 5g module +ai intelligent security solution shines at CPSE Expo
- Simulation of radar emitter modulated signal
猜你喜欢

Red team shooting range with three-layer protection

AI助力,释放法务势能!iTerms合同智审系统重磅发布

2022 love analysis · privacy computing vendor panoramic report | love Analysis Report
![[pan micro E9 development] single sign on Kingdee eas](/img/c7/50af4513be38b5e963ffc62de4e16d.jpg)
[pan micro E9 development] single sign on Kingdee eas

超简单 CameraX 人脸识别效果封装

Matlab reports an error when trying to use * * * as a function problem, and tries to execute script PCA as a function:

MySql索引

Samsung Galaxy S21 ultra and Apple iPhone 13 Pro Max: which one should you choose

What great open source projects does Google have?

It's 2022. When will the "module freedom" be realized?
随机推荐
A.前缀极差(C语言)
Matter protocol
A. Prefix range (C language)
Golang generics: generics
Zhongang Mining: fluorochemical industry is the main consumption field of fluorite
A - Eddy's AC puzzle (C language)
Detailed explanation of network time synchronization (NTP network timing) of video monitoring system
Feature selection algorithm based on bare bones particleswarm optimization
Docker swarm installs redis cluster (bitnami/redis cluster:latest)
Market prospect analysis and Research Report of integrated scanner in 2022
【服务器数据恢复】同友存储raid5崩溃的数据恢复案例
What great open source projects does Google have?
Sslstrip Ultimate - location hijacking
7. 列表标签
Methods to detect whether PHP websites have been broken
众昂矿业:氟化工是萤石的主要消耗领域
Market prospect analysis and Research Report of denitrification unit in 2022
Market prospect analysis and Research Report of programmable digital temperature regulator in 2022
Market prospect analysis and Research Report of engraving laser in 2022
From the first generation of sowing to the first generation of flowers, 5g commercial "gave birth to all things" for the third anniversary