JVM与Java体系结构
一、JVM的重要性
- 面试,大厂必备;
- 中高级程序员的必备:项目管理、调优的需要;
- 极客精神:垃圾回收算法、JIT、底层原理。
Java相较于C/C++自带安全检查、垃圾回收、动态内存分配,入门学习起来相对更简单一些,工作以后必然要面临很多问题,学习JVM还是很有必要的。
二、Java与JVM
-
Java,跨平台的语言:write once,run anywhere。
-
Java和JVM没有必然的联系!
-
**虚拟机分两类:**系统虚拟机和程序虚拟机。系统虚拟机是对物理计算机的仿真,例如Visual Box,VMware;程序虚拟机为执行单个计算机程序而设计,例如JVM。
-
JVM整体结构简图
- java代码执行流程
-
指令集架构:
-
JVM的生命周期:启动、执行、退出。
-
一些比较出名的JVM
-
使用最多的三个JVM
-
HotSpot:属于Oracle,平时使用默认的虚拟机,英语即热点代码探测技术,编译器和解释器协同工作,面试中一般没有说明问的都是HotSpot。
-
JRockit:属于Oracle,最快的JVM,没有解释器,只有编译器,一般用在服务器上。
-
J9:属于IBM,号称最快的JVM,因为专门对IBM的硬件做了适配,所以在IBM的硬件上最快,但是不适用于其他硬件(类似苹果的IOS,针对硬件设计的系统)。
-
可以看到,无论是什么样的架构,如果只考虑一个平台,性能都是可以做到非常高的,基于寄存器的指令集架构如是,J9也如是。但是太依赖硬件就像把鸡蛋放到一个篮子里,如果能像苹果一样天时、地利、人和也还好,但大多都会像诺基亚、柯达这样的公司,很容易压错宝。不得不说,Java的成功是源自其跨平台特性,不能做专才,做全才也不失为走向成功的一条康庄大道。
-
-
一些值得了(chui)解(bi)的JVM
- Sun Classic VM:Java 1.0的产物,世界第一款商用JVM,只有解释器,不能和JIT一同运行,HotSpot内置了该虚拟机。
- Exact VM:Java 1.2出现,可以热点探测,可以让编译器和解释器混合工作,然而很快HotSpot出现,该虚拟机便没有用武之地。
- KVM和CDC/CLDC HotSpot:早期用于Java ME产品线上的虚拟机,用于手机上,目前市场基本没有,仅用于老人机、功能机,早年《艾诺迪亚》等游戏就是用java开发的。
-
本学习笔记基于宋老师的JVM课程。学习之路道阻且长,共勉。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。