Java 能得到如此普遍的承认,除了它拥有一门结构严谨、面向对象的编程语言以外,还有许多不可忽视的优势:java
通常状况下,仅需知道java核心类库,以及第三方类库里API的用法,即可以专一于实现具体业务,而且依赖Java虚拟机自动执行乃至优化应用程序。
若是把核心类库的API比做数学公式的话,那么Java虚拟机的知识就比如公式的推导过程。掌握数学公式当然能够应付考试,可是了解背后的推导过程更加有助于记忆和理解。而且,在遇到哪些无法套公式的状况下,咱们也能知道如何解决。算法
JVM提供了近千个配置参数编程
$ java -XX:+PrintFlagsFinal -XX:+UnlockDiagnosticVMOptions -version | wc -l
java version "10" 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HostSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)
812
复制代码
更好地规避JVM在使用中的Bug安全
JVM拥有最前沿、最成熟的垃圾回收算法实现,以及即时编译器实现。了解其背后决策,对其余代码托管技术也能举一反三bash
除Javaw外,Scala、Clojure、Groovy、以及时下热门的Kotlin,这些语言均可以运行在JVM上。oracle
Scala 是一门多范式(multi-paradigm)的编程语言,设计初衷是要集成面向对象编程和函数式编程的各类特性。
Scala 运行在 Java 虚拟机上,并兼容现有的 Java 程序。
Scala 源代码被编译成 Java 字节码,因此它能够运行于 JVM 之上,并能够调用现有的 Java 类库。编程语言
Clojure 是一种运行在 Java 平台上的 Lisp 方言。
Lisp 是一种以表达性和功能强大著称的编程语言,但人们一般认为它不太适合应用于通常状况,而 Clojure 的出现完全改变了这一现状。
现在,在任何具有 Java 虚拟机的地方,您均可以利用 Lisp 的强大功能。分布式
Groovy 是一种基于 JVM(Java 虚拟机)的敏捷开发语言,它结合了 Python、Ruby 和 Smalltalk 的许多强大的特性。
Groovy 代码可以与 Java 代码很好地结合,也能用于扩展示有代码。
因为其运行在 JVM 上的特性,Groovy 可使用其余 Java 语言编写的库。函数式编程
Kotlin 是一个用于现代多平台应用的静态编程语言 [1] ,由 JetBrains 开发。
Kotlin 能够编译成 Java 字节码,也能够编译成 JavaScript,方便在没有 JVM 的设备上运行。
Kotlin 已正式成为 Android 官方支持开发语言。函数
参考来源: 极客时间《深刻拆解Java虚拟机》 周志明 《深刻理解Java虚拟机》