引言
最近准备好好学习下Gradle,而学习Gradle的前提是必须要会点Groovy。在此,将自己学习Groovy的经历记录下。
Groovy简介
Groovy 是 JVM 的一个替代语言 —替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。
我自己的理解是Groovy是一个基于JVM的动态脚本语言。基于JVM,意思就是运行Groovy时,首先会被编译成Java的class文件,然后再运行到JVM上。动态脚本语言,是说变量的类型可以不固定,就像Python,Js那样声明的变量。同时用Groovy写代码的时候不用像Java那样一定要个类或者方法,可以直接写执行语句,运行的时候不用先编译,可以直接解释执行。当然这点其实是
Groovy和Java的区别
Groovy和Java法语非常接近,甚至从某种意义上来讲Groovy就是Java。首先,它们都基于JVM,其次我们完全可以在Groovy文件中写Java代码,不会有任何问题。了解Groovy后,会发现Groovy和Java最大的区别就是Groovy更具生产力,完全同样的任务Groovy比Java要少写非常多的代码。这得益于Groovy松散的语法和一些新特性,主要表现为:
- 语法较为松散,允许省略分号,修饰符(默认都是public)
- 允许定义简单脚本,无需定义正规的类对象和方法
- 本地集合,为集合增加的魔方方法,内置正则表达式,闭包
- 变量类型推断,类型不固定
- 一体两面,Goovy代码和Java代码可以互相复用
下面用一个实际的例子,来清楚地表明Groovy和Java的区别。
用Java编写一段Hello World
新建一个HelloWorld.java
1
2
3
4
5public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World!");
}
}这段代码,第一次学习Java的时候,书上就是这样写的。
javac命令编译这个类文件
1
javac HelloWorld.java
java命令执行这个文件
1
java HelloWorld
用Groovy来实现同样的功能
新建一个文件HelloWorld.groovy
1
println "Hello World!"
groovy命令运行这段代码
1
groovy HelloWorld.groovy
可以看到,用Groovy实现同样的功能,非常简洁,就和Python一样。这里没有声明正规的class对象和方法,打印方法也是简写,直接println +参数。并且调用的时候,也不需要带括号。行末也没有添加分号。另外,运行这个文件直接解释执行,不需要提前编译。当然这背后肯定是Groovy自己默默帮我们编译成class文件再运行的。
现在我们把上面的java代码完全写在Groovy文件中,groovy命令运行,会发现和之前的结果一模一样。这就说明了Groovy其实就是Java!只是语法松散的Java。
安装Groovy
Groovy依赖于Java,所以首先得先配置Java环境,这个就不说了。
到Groovy官网下载SDK,下载完毕后,解压即可。
配置环境变量。
新建GROOVY_HOME,值为刚才解压的路径。再将GROOVY_HOME添加到PATH当中。
测试
win+R,输入cmd,进入控制台。输入groovy -version,看到有打印Groovy版本说明配置Groovy成功了。