JVM

JVMJava Virtual Machine,Java虚拟机)

1.1、JVM规范
1.2、JVM具体实现
1.3、基于JVM的语言

JVM一开始就被设计成一个平台。这个平台大大简化了语言的设计者的工作。传统的语言设计者要面对的是各种CPU, 而现在JVM已经把各种CPU的兼容问题都解决掉了。语言的设计者只要关心JVM的指令即可。

下面是基于JVM的语言与JVM的关系:

Java之父James Gosling做过的一个统计,世界上有超过8亿5千万台桌面设备启用了Java(即,至少安装了JRE), 还有100亿台具有Java功能的设备。JVM这样一个质量好、名气大的舞台,谁会不想上去跳几步?

JVM的垃圾回收机制、安全性以及性能是这些语言开发者看中的好处。在性能这一点上或许有待商榷, 不过自从JIT编译技术应用在JVM上之后, 据说其性能已经接近了C++的级别,而且JVM还一直在优化和提升之中。

Java语言已经被公认为是非常成功、流行的语言。但是Java语言也有很多弱点,比如编写繁琐、运行时异常导致奔溃等, 加之脚本语言、函数式编程语言的再度流行,基于JVM的语言正在开始流行,尤其是基于JVM的脚本语言。

过去几年间,JVM上发展了诸如GroovyJython这些动态语言, 以及Scala这样的静态语言。

在这些基于JVM的语言中,有好几个都是专门定位于JVM的新语言,其中以ClojureGroovyScala为代表。 而这些语言的创始人们都不约而同的表示过自己对Java语言的厌倦与失望。

Clojure的创始人Rick Hickey说:“我想要一个动态的、富有表达力的、函数式的语言。”

Groovy的创始人James Strachan说:“Java是一种令人惊叹的复杂语言, 它的语法规范长达600页,我怀疑到底有没有人能真正理解它”。

Scala语言的创始人Martin Odersky则是这样描述Java语言的: “经过Pizza和GJ的经历,我有时会感到沮丧,因为Java是一个具有非常强的约束的语言。 因此,很多事情都不能像我想象的那种方式那样去做——那种我原本确信是正确的方式。 其中最强、最难以应付的是,它必须充分地向后兼容非泛型Java”。

基于JVM的语言纷纷涌现,并被广泛应用到软件项目中,单一的Java开发已经无法满足当前复杂软件的需求,JVM平台上的多语言混合编程正成为主流。对于Java程序员而言,技术单一化正变的危险, 因为你周围的世界已经变得复杂,混合编程时代已经到来,你准备好了吗?

常用的基于JVM的语言有如下这些:

除了上面这些专门基于JVM设计的语言,很多其他早已实现的语言,也能运行在JVM上,包括如下这些: