JAVA语言是一种静态类型的编程语言。静态类型的含义是指在编译的时候进行类型检查。JAVA源代码中的每个每个变量的类型都需要显式地进行声明。所有 的变量、方法的参数和返回值的类型在程序运行之前就必须是已知的。JAVA语言的这种静态类型特性使编译器可以在编译的时候执行大量的检查来发现代码中明 显的类型错误,这样一来,代码中会包含很多不必要的类型声明,使用代码不够简洁灵活。与静态类型语言相对应的是动态类型语言,如JavaScript 和Ruby等。动态类型语言的类型检查在运行中进行。源代码中不需要显式地声明类型。去掉了类型声明之后,使用动态类型语言写的代码更加简洁。近年来,动 态类型语言的流行也反映了语言中动态性的重要性。适当的动态性对于提高开发的效率是有帮助的,可以减少开发人员需要编写的代码量。 从Java6引入了脚本语言支持API,文本主要围绕脚本语言支持API讲解(反射将在下一文提起) 随着JAVA平台的流行,很多的脚本语言(scripting language)都可以运行在JAVA虚拟机上,其中比较流行的有JavaScript、JRuby、Jython和Groovy等。对于这些运行在 JAVA虚拟机平台上的脚本语言来说,并不需要为它们准备额外的运行环境,直接复用已有的JAVA虚拟机环境即可。在应用开发中使用脚本语言,实际上是" 多语言开发"的一种很好的实践,即根据应用的需求和语言本身的特性来选择最合适的变成语言,以快速高效的解决应用中的问题,比如一个一用,可以用 Groovy来编写用户界面,用Java编写核心业务逻辑,用Ruby来进行数据处理,不同的语言编写的代码可以同时运行在同一个JAVA虚拟机上。这些 脚本语言于Java语言之间的交互,是由脚本语言支持API来完成的。 1、脚本引擎 来一个简单的例子(相当于java中System.out.println方法),了解一下脚本引擎的用法,代码如下 public void greet() throws ScriptException{ ScriptEngineManager manager=new ScriptEngineManager(); ScriptEngine engine=manager.getEngineByName("JavaScript"); if(engine==null) throw new RuntimeException("未找到JavaScript语言执行引擎"); engine.eval("println('HelloWorld!');"); } 上面的代码中我们是通过脚本引擎的名称来查找的。实际上,脚本引擎管理器提供了三种查找脚本引擎的方式,分别是通过名称、文件扩展名和MIME类型来完成,如: ScriptEngine engine=manager.getEngineByExtension("js"); ScriptEngine engine=manager.getEngineByMimeType("text/javascript"); ScriptEngine engine=manager.getEngineByName("JavaScript"); |