1、Java简史
Java语言是一门通用的、面向对象的、反对并发的程序语言。寰球从事Java相干开发的人员曾经数以百万计。
从1995年“Java”正式呈现以来,Java曾经经验了二十几年的倒退。
Java语言之所以能广受欢迎,其中的起因之一是Java是一门能够跨平台的语言。
而跨平台的个性就是通过Java虚拟机(JVM)是实现的。
2、JVM简介
JVM是整个Java平台的基石。
JVM能够看作形象的计算机。编译器将Java文件编译为Java字节码文件(.class),接下来JVM对字节码文件进行解释,翻译成特定底层平台匹配的机器指令并运行。
JVM和Java语言没有必然的分割,它只与class文件格式关联。也就是任何语言,只有能编译成符合规范的字节码文件,都是能被Jvm运行的。也就是说JVM是跨语言的平台。
3、Java虚拟机标准
咱们还要意识到,Java虚拟机是一种标准,它指定了Java虚拟机构造、class文件格式、类加载过程等。咱们平时所提到的Java虚拟机个别指的是一种具体的Java虚拟机的实现,例如最出名的hotspot,遵循Java虚拟机标准,甚至能够本人实现Java虚拟机。
4、Java虚拟机常见实现
4.1、HotSpot VM
HotSpot虚拟机是当初利用最宽泛的虚拟机,它是Sun/OracleJDK和OpenJDK中的默认Java虚拟机。
然而这款虚拟机在最后并非由Sun公司所开发,而是由一家名为“Longview Technologies”的小公司设计;甚至这个虚拟机最后并非是为Java语言而研发的,它来源于Strongtalk虚拟机。
Oracle收买Sun当前,建设了HotRockit我的项目来把原来BEA JRockit中的优良个性交融到HotSpot之中。到了2014年的JDK 8期间,外面的HotSpot就已是两者交融的后果,HotSpot在这个过程 里移除掉永恒代,排汇了JRockit的Java Mission Control监控工具等性能。 得益于Sun/OracleJDK在Java利用中的统治位置,HotSpot天经地义地成为全世界应用最宽泛的Java 虚拟机,是虚拟机家族中毫无争议的“武林盟主”。
4.2、BEA JRockit/IBM J9 VM
历史上除了Sun/Oracle公司以外,也有其余组织、公司开发过虚拟机的实现。除了HotSpot之外,BEA JRockit和IBM J9 VM已经与HotSpot并称“三大商业Java虚拟机”,它们别离是BEA System公司和 IBM公司开发。
除BEA和IBM公司外,其余一些大公司也号称有本人的专属JDK和虚拟机,然而它们要么是通过从Sun/Oracle公司购买版权的形式取得的(如HP、SAP等),要么是基于OpenJDK我的项目改良而来的 (如阿里巴巴、Twitter等),都并非本人独立开发。
5、JDK&JRE&JVM
JDK&JRE&JVM三者经常被用来比拟。
- JDK(Java Development Kit Java 开发工具包),JDK 是提供给 Java 开发人员应用的,其中蕴含了 Java 的开发工具,也包含了 JRE。其中的开发工具包含编译工具(javac.exe) 打包工具(jar.exe)等。
- JRE(Java Runtime Environment Java 运行环境) 是 JDK 的子集,也就是包含 JRE 所有内容,以及开发应用程序所需的编译器和调试器等工具。JRE 提供了库、Java 虚拟机(JVM)和其余组件,用于运行 Java 编程语言、小程序、应用程序。
- JVM(Java Virtual Machine Java 虚拟机),JVM 能够了解为是一个虚构进去的计算机,具备着计算机的根本运算形式,它次要负责把 Java 程序生成的字节码文件。
三者关系简图如下:
<big>参考:</big>
【1】:周志朋编著《深刻了解Java虚拟机:JVM高级个性与最佳实际》
【2】:周志朋等翻译《Java虚拟机标准》
【3】:封亚飞编著《揭秘Java虚拟机 JVM设计原理与实现》
【4】:【死磕JVM】JVM疾速入门之前戏篇