Groovy - 介绍

  Groovy 是 用于Java 虚拟机的一种敏捷的 动态语言,它是一种成熟的 面向对象编程语言,既能够用于面向对象编程,又能够用做纯粹的 脚本语言。使用该种语言没必要编写过多的代码,同时又具备 闭包和动态语言中的其余特性。
Groovy是 JVM的一个替代语言(替代是指能够用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与 Spring的动态语言支持一块儿使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操做很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。[1]  
 

基本特色

一、 构建在强大的 Java语言之上 并 添加了从 PythonRubySmalltalk等语言中学到的 诸多特征,例如动态类型转换、 闭包元编程(metaprogramming)支持。。
二、为Java开发者提供了 现代最流行的编程语言特性,并且学习成本很低(几乎为零)。
三、 支持 DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让代码变得易于阅读和维护。
四、受检查类型异常(Checked Exception)也能够不用捕获。
五、 Groovy拥有处理原生类型, 面向对象以及一个Ant DSL,使得建立Shell Scripts变得很是简单。
六、在开发Web, GUI,数据库或控制台程序时 经过 减小框架性代码 大大提升了开发者的效率。
七、支持 单元测试和模拟(对象),能够 简化测试。
八、无缝集成 全部已经存在的 Java对象和类库。
九、直接编译成Java 字节码,这样能够在任何使用Java的地方 使用Groovy。[2]  
十、支持 函数式编程,不须要 main函数
十一、一些新的 运算符
十二、默认导入经常使用的包。
1三、断言不支持jvm的-ea参数进行开关。
1四、支持对对象进行布尔求值。
1五、类不支持default 做用域,且默认做用域为 public
1六、groovy中基本类型也是对象,能够直接调用对象的方法。

动态类型

类型对于变量,属性,方法,闭包的参数以及方法的返回类型都是无关紧要的,都是在给变量赋值的时候才决定它的类型, 不一样的类型会在后面用到,任何类型均可以被使用,即便是基本类型 (经过自动包装(autoboxing)). 当须要时,不少类型之间的转换都会自动发生,好比在这些类型之间的转换: 字符串(String),基本类型(如int) 和类型的包装类 (如 Integer)之间,能够把不一样的基本类型添加到同一数组(collections)中。

闭包

闭包就是可使用参数的代码片断,每一个闭包会被编译成 继承groovy.lang.Closure类的类,这个类有一个叫call方法,经过该方法能够传递参数并调用这个闭包.它们能够访问并修改在闭包建立的范围内的变量,在闭包内建立的变量在闭包被调用的范围内一样能够被引用, 闭包能够保存在变量中并被做为参数传递到方法中。

 

Groovy 语法与Java 语言的语法很类似,虽然 Groovy 的语法源于 SmalltalkRuby这类语言的理念,可是能够将它想像成 Java 语言的一种更加简单、表达能力更强的变体。(在这点上,Ruby与 Groovy 不一样,由于它的语法与 Java 语法差别很大。)
许多 Java 开发人员喜欢 Groovy 代码和 Java 代码的类似性。从学习的角度看,若是知道如何编写 Java 代码,那就已经了解 Groovy 了。Groovy 和 Java 语言的主要区别是:完成一样的任务所需的 Groovy 代码比 Java 代码更少。
相关文章
相关标签/搜索