JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。
引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
1.面试的需要(BATJ、TMD,PKQ等面试都爱问)
2.中高级程序员必备技能(项目管理、调优的需要)
3.追求极客的精神
JVM是运行在操作系统之上的,它与硬件没有直接的交互
硬件->操作系统->JVM->字节码文件->用户
HotSpot VM是目前市面上高性能虚拟机的代表作之一,它采用解释器与即时编译器并存的架构,它最初由一家名为“Longview Technologies”的小公司设计,1997年,此公司被Sun收购;2009年,Sun公司被甲骨文收购,而到了JDK1.3时,HotSpot VM成为了默认虚拟机.
Java编译器输入的指令流基本上是一种基于栈的指令集架构,另外一种指令集架构则是基于寄存器的指令集架构。具体来说:这两种架构之间的区别:
基于栈式架构的特点:
基于寄存器架构的特点:
Java虚拟机的启动是通过引导类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的,这个类是由虚拟机的具体实现指定的。
原文:https://www.cnblogs.com/niulongwei/p/14829909.html