当前位置:网站首页>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 machineandProgram 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 VMIt 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
边栏推荐
- Cocos2d-x box2d physical engine compilation settings
- 商城商品的知识图谱构建
- cocos3——8. Implementation Guide for beginners
- HDU ACM 4578 Transformation-> Segment tree - interval change
- Lost in the lock world of MySQL
- Introduction to ins/gps integrated navigation type
- Data analysis from the perspective of control theory
- Use of tensorboard
- Redis getting started complete tutorial: common exceptions on the client
- Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
猜你喜欢

上个厕所的功夫,就把定时任务的三种调度策略说得明明白白

【基于 RT-Thread Studio的CPK-RA6M4 开发板环境搭建】

“零售为王”下的家电产业:什么是行业共识?

A complete tutorial for getting started with redis: RDB persistence

uniapp适配问题

IDEA重启后无法创建Servlet文件的解决方案

尚硅谷JVM-第一章 类加载子系统

2022 spring recruitment begins, and a collection of 10000 word interview questions will help you

Redis getting started complete tutorial: client management

数学归纳与递归
随机推荐
Error: could not find a version that satisfies the requirement xxxxx (from versions: none) solutions
How-PIL-to-Tensor
Make (convert) ICO Icon
Matlab Error (Matrix dimensions must agree)
Shell 编程基础
Leetcode 77: combination
cocos3——8. Implementation Guide for beginners
C language string sorting
制作(转换)ico图标
Cryptography series: detailed explanation of online certificate status protocol OCSP
SQL中删除数据
腾讯云原生数据库TDSQL-C入选信通院《云原生产品目录》
杰理之播内置 flash 提示音控制播放暂停【篇】
从 1.5 开始搭建一个微服务框架——日志追踪 traceId
Use of tensorboard
Introduction to ins/gps integrated navigation type
leetcode
首届“量子计算+金融科技应用”研讨会在京成功举办
leetcode-02(链表题)
Jerry's broadcast has built-in flash prompt tone to control playback pause [chapter]