当前位置:网站首页>Shangsilicon Valley JVM Chapter 1 class loading subsystem
Shangsilicon Valley JVM Chapter 1 class loading subsystem
2022-07-07 03:13:00 【A lazy bug】
1、 Virtual machine introduction
The so-called virtual machine (Virtual Machine), It's just one
Virtual computers
. It's aSoftware
, Used to execute a series of virtual computer instructions . Broadly , Virtual machines can be divided intoSystem virtual machine
andProgram virtual machine
.
- big-name Virtual Box,VMware It belongs to the system virtual machine , They are all simulations of physical computers , It provides a software platform that can run a complete operating system .
- A typical example of a program virtual machine is Java virtual machine , It's designed to execute a single computer program , stay Java The instructions executed in the virtual machine are called Java Bytecode instruction .
- Whether it's a system virtual machine or a program virtual machine , The software running on it is limited to the resources provided by the virtual machine .
2、Java virtual machine
- Java A virtual machine is an execution machine Java Bytecode virtual computer , It has an independent operating mechanism , It runs Java Bytecode may not be created by Java Language compilation .
- JVM Various languages of the platform can be shared Java The cross platform nature of virtual machine 、 Excellent garbage collector , And a reliable just in time compiler .
- Java The core of technology is Java virtual machine (JVM,Java Virtual Machine), Because of all the Java The program is running in Java Inside the virtual machine .
- Java Virtual machine is the running environment of binary bytecode , Responsible for loading bytecode into its interior , explain / Compile to execute machine instructions on the corresponding platform . Every one of them Java Instructions ,Java There are detailed definitions in the virtual machine specification , How to get the operands , How to deal with operands , Where is the result of the treatment .
3、JVM Overall structure
HotSpot VM
It is one of the representative works of high performance virtual machine on the market .- It uses an interpreter and just in time compiler architecture .
- In today's ,Java The performance of the program has been completely changed , Have reached the point where you can and C/C++ The program is higher and lower .
- The execution engine consists of three parts :
Interpreter
,Just in time compiler
,Garbage collector
4、JVM Architectural model
Java The flow of instructions input by the compiler is basically a Stack based instruction set architecture , Another instruction set architecture is Register based instruction set architecture . say concretely : The difference between the two architectures :
Based on the characteristics of plank structure
- Simpler design and Implementation , For systems with limited resources
- Avoid the problem of register allocation : Use zero address instruction to assign
- Most of the instructions in the instruction stream are zero address instructions , Its execution depends on Stack operation . The instruction set is smaller , The compiler is easy to implement
- No hardware support required , Better portability , Better Cross platform implementation
Based on the characteristics of register architecture
- The typical application is x86 The binary instruction set of : Like traditional PC as well as Android Of Davlik virtual machine .
- Instruction set architecture Rely entirely on hardware , High coupling with hardware , Poor portability
- Better performance and more efficient execution
- Spend less instruction to complete an operation
- In most cases , The instruction set based on register architecture usually uses one address instruction 、 Two address instructions and three address instructions are the main , The instruction set based on the stack architecture is mainly zero address instruction
5、 summary
- Because of the cross platform design ,Java The instructions of are designed according to the stack . Different platforms CPU Different architectures , So it can't be designed as register based . The advantage is cross platform , Instruction set is small , The compiler is easy to implement , The disadvantage is that the performance is reduced , More instructions are needed to implement the same function
- today , Although embedded platforms are no longer Java The mainstream running platform of the program ( To be exact, it should be HotSpot VM Our host environment is no longer limited to embedded platforms ), So why not change the architecture to register based architecture ?
- Because stack based architecture Good cross platform 、 Instruction set is small , Although compared with register based architecture , Stack based architecture compiles more instructions , The execution performance is not as good as register based architecture , But considering its Cross platform and portability , We still choose the stack architecture
边栏推荐
- 杰理之RTC 时钟开发【篇】
- How to verify accesstoken in oauth2 protocol
- Change your posture to do operation and maintenance! GOPs 2022 Shenzhen station highlights first!
- 2022 information security engineer examination outline
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
- 【colmap】已知相机位姿情况下进行三维重建
- Laravel php artisan 自动生成Model+Migrate+Controller 命令大全
- 2022 spring recruitment begins, and a collection of 10000 word interview questions will help you
- 杰理之发射端在接收端关机之后假死机【篇】
- How to find file accessed / created just feed minutes ago
猜你喜欢
Redis getting started complete tutorial: replication configuration
Centerx: open centernet in the way of socialism with Chinese characteristics
掘金量化:通过history方法获取数据,和新浪财经,雪球同用等比复权因子。不同于同花顺
mos管實現主副電源自動切換電路,並且“零”壓降,靜態電流20uA
Leetcode 77: combination
Starting from 1.5, build a micro Service Framework -- log tracking traceid
input_ delay
uniapp适配问题
[cpk-ra6m4 development board environment construction based on RT thread studio]
Analysis of USB network card sending and receiving data
随机推荐
HDU 4337 King Arthur' S Knights it outputs a Hamiltonian circuit
如何分析粉丝兴趣?
Data analysis from the perspective of control theory
【达梦数据库】备份恢复后要执行两个sql语句
Detailed explanation of 19 dimensional integrated navigation module sinsgps in psins (time synchronization part)
Uniapp adaptation problem
首届“量子计算+金融科技应用”研讨会在京成功举办
从 1.5 开始搭建一个微服务框架——日志追踪 traceId
制作(转换)ico图标
又一百万量子比特!以色列光量子初创公司完成1500万美元融资
DOMContentLoaded和window.onload
The solution of unable to create servlet file after idea restart
Appx代码签名指南
unrecognized selector sent to instance 0x10b34e810
New benchmark! Intelligent social governance
【安全的办公和生产力应用程序】上海道宁为您提供ONLYOFFICE下载、试用、教程
惯导标定国内外研究现状小结(删减版)
SSL证书错误怎么办?浏览器常见SSL证书报错解决办法
ERROR: Could not find a version that satisfies the requirement xxxxx (from versions: none)解决办法
变量、流程控制与游标(MySQL)