2011年10月6日,一年一度的JavaOne大会隆重举行。JavaOne2011大会的主题之一介绍针对不同Java平台的产品路线图,这其中包括移动版(ME,Micro Edition)、标准版(SE,Standard Edition)以及企业版(EE,Enterprise Edition)。
Java SE的亮点之一就是Oracle详细阐述Java SE 8路线图。我们先来看看Java SE 8新增了哪些主要功能:
Java SE 8 新增主要功能
1、为提高开发人员工作效率,更好地利用多核处理器和增强对Java集合APIs的大容量数据处理功能,推出的Lambda表达式(“关闭”)。
2、原始Java模块系统(“项目Jigsaw”)将简化应用程序的构建、包装以及部署,让一个完全模块化的Java平台能在服务器、客户和嵌入式系统上进行定制化部署。
3、在JVM上的JavaScript改进,包括一个为JVM优化的全新JavaScript引擎Nashorn和全面的Java / JavaScript互操作性。
4、具有JavaFX 3.0形式的下一代Java客户端。包括多点触摸功能的现代设备支持。
5、完成的HotSpot / JRockit JVM集聚项目,包括性能增强和第二代的Java Flight Recorder。
其中,笔者最关心的是第三条,即JVM对JavaScript的改进。它的核心组件是JavaScript引擎Nashorn,它实现了Java与JavaScript互操作性。Nashorn一词与Rhino类似,汉语意思均为犀牛。而巧合的是,Rhino就是JavaScript引擎,它的目的就是实现Java与JavaScript的互操作性。那么Rhino究竟是什么呢?为什么说Nashorn是新一代JavaScript引擎?Rhino有什么特性?Rhino与Java及JavaScript有什么关系呢?本文将会为您一一解答。
什么是Rhino?
Rhino 是JavaScript 的一种基于Java的实现,原先由Mozilla开发,现在被集成进入JDK 6.0。下面这两行代码恰好说明了这一点。
import sun.org.mozilla.javascript.internal.Context;
import sun.org.mozilla.javascript.internal.Scriptable;
Rhino汉语意思为犀牛,它的名字来源于 O'Reilly 关于 JavaScript 的书的封面,如图一所示。
Rhino的特点如下:
JavaScript 1.5的全部特性
◆ 允许使用脚本直接操作Java
◆ 提供JavaScript Shell执行其它JavaScript脚本
◆ 提供JavaScript编译器将JavaScript源程序转换成Java类文件
Rhino相关背景
Rhino的历史可追溯到1997 年。Netscape计划开发Java版的Navigator,即Javagator。它也就是 Rhino 的前身。虽然 Javagator 未能开花结果,但是Rhino,作为Netscape 对 JavaScript 的移植语言,经过时间考验存活了下来。
如今,随着 Rhino 开放源代码,越来越多的开发者参与了 Rhino 的开发。随着Rhino的愈加成熟,越来越多的用户选择使用了Rhino。