背景
现在大厂对JVM这块知识要求越来越高和为了让自己对JAVA语言有更深层次的理解,因此在此记录自己所学JVM知识,方便复习,以防遗忘。
知识来源 :《深入理解JAVA虚拟机》、官网 、网络博客、腾讯课堂上、尚硅谷视频、实际生产遇到过的问题
简介
各个语言排行榜.
JVM是一个跨语言的平台,只要各自的编程语言提供各自的编译器,编译后的字节码文件遵循JVM规范即可。也就是说java虚拟机平台上也可以运行非java语言编写的程序
基础知识
1.虚拟机
虚拟机(Virtual Machine ) 就是一台虚拟的计算机,它是一款软件,用来执行一系列虚拟计算机指令,大体上,虚拟机可以分为两种
1.系统虚拟机
这两个就属于系统虚拟机,他们是对物理计算机的仿真,提供一个可运行完整操作系统的软件平台
2.程序虚拟机,比如JAVA虚拟机,它专门为执行单个计算机程序而设计的
2.JVM位置
JVM是运行在操作系统之上的
系统虚拟机是模拟的硬件
3.JVM整体结构
这里面的每个区域也都是后面学习的内容
3.JVM架构模型
1.栈的指令集架构 JVM便是这种架构
设计和实现简单,适用于资源受限的系统
避开了寄存器的分配难题,使用零地址指令分配
指令流中的指令大部分是零地址指令,其执行过程依赖于操作栈、指令集更小、编译器容易实现
不需要硬件支持,可移植性更好,更好实现跨平台
2.基于寄存器架构的特点
典型 的应用是x86的二进制指令集:比如传统的PC
完全依赖于硬件 可移植性差
性能优秀和执行更高效