Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以使用其他 Java 语言编写的库。作为跑在JVM中的另一种语言,Groovy语法与 Java 语言的语法很相似。同时,Groovy 抛弃了Java烦琐的文法。同样的语句,使用Groovy能在最大限度上减少你的击键次数——这确实是“懒惰程序员们”的福音。
Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。
Groovy 特点
1、 构建在强大的Java语言之上并添加了从Python、Ruby、Smalltalk等语言中学到的 诸多特征,例如动态类型转换、闭包和元编程(meta programming)支持。。
2、为Java开发者提供了 现代最流行的编程语言特性,而且学习成本很低(几乎为零)。
3、 支持DSL(Domain Specific Languages领域定义语言)和其它简洁的语法,让代码变得易于阅读和维护。
4、受检查类型异常(Checked Exception)也可以不用捕获。
5、 Groovy拥有处理原生类型,面向对象以及一个Ant DSL,使得创建Shell Scripts变得非常简单。
6、在开发Web,GUI,数据库或控制台程序时通过减少框架性代码大大提高了开发者的效率。
7、支持单元测试和模拟(对象),可以简化测试。
8、无缝集成所有已经存在的 Java对象和类库。
9、直接编译成Java字节码,这样可以在任何使用Java的地方使用Groovy。
10、支持函数式编程,不需要main函数。
11、一些新的运算符。
12、默认导入常用的包。
13、断言不支持jvm的-ea参数进行开关。
14、支持对对象进行布尔求值。
15、类不支持default作用域,且默认作用域为public。
16、groovy中基本类型也是对象,可以直接调用对象的方法。
Groovy 语法
Groovy 语法与Java 语言的语法很相似,虽然 Groovy 的语法源于Smalltalk和Ruby这类语言的理念,但是可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。在这点上Ruby与 Groovy 不同,因为它的语法与 Java 语法差异很大。
许多 Java 开发人员喜欢 Groovy 代码和 Java 代码的相似性。从学习的角度看,如果知道如何编写 Java 代码,那就已经了解 Groovy 了。Groovy 和 Java 语言的主要区别是:完成同样的任务所需的 Groovy 代码比 Java 代码更少。
Groovy 的松散的 Java 语法,允许省略行末分号和修改符。
除非另行指定,Groovy 的所有内容都为 public。
Groovy 允许定义简单脚本,同时无需定义正规的 class 对象。
Groovy 在普通的常用 Java 对象上增加了一些独特的方法和快捷方式,使得它们更容易使用。
Groovy 语法还允许省略变量类型。
关于闭包:可以将闭包 想像为一个代码块,可以现在定义,以后再执行。可以使用这些强大的构造做许多漂亮的事,不过最著名的是简化迭代。使用 Groovy 之后,就有可能再也不需要编写 Iterator 实例了。
动态的 Groovy: 从技术上讲,Groovy 可能是您最近听说过的类型最松散的动态语言之一。从这个角度讲,Groovy 与 Java 语言的区别很大,Java 语言是一种固定类型语言。在 Groovy 中,类型是可选的,所以您不必输入 String myStr = "Hello"; 来声明 String 变量。可以直接使用def进行不指定类型定义,类似于js中的var。
与Java互用:用 Groovy 编写的任何内容都可以编译成标准的 Java 类文件并在 Java 代码中重用。类似地,用标准 Java 代码编写的内容也可以在 Groovy 中重用。
Groovy 安装
1. 命令安装
a)Mac OS X (推荐)
brew install groovy
sudo port install groovy
b)Windows (推荐)
安装配置:
apache-gro