简单介绍
Groovy 是对java的扩展
不用定义类型
有闭包概念
有新的循环
结尾省略分号
java
public class Test{
public static void main(String [] args){
System.out.println("Hello World");
}
}
groovy
println("Hello world');
与java的不同
1.不需要引入包--
imported by default
2.数组的初始化 --groovy的{}用于闭包
java int [] a={1,2,3};
groovy int a[] = [1,2,3]
3.没有private
class Test{ @PackageScope String name }
- 自动资源管理
Groovy不支持java7中的自动资源管理,但是它使用闭包提供了实现相同功能的方法,但是方法更好
- 内部类
(1)静态内部类
class A{
static class B{ }
}
new A.B();
(2)匿名内部类
- java 8 支持
lambdas表达式 and method references,groovy 由闭包代替????
-
Groovy 支持Gstring 所以String 中包含“$”有可能解析错误
-
单引号在Groovy中被认为是String,双引号可能是String or GString
assert 'aaa'.getClass() == String assert
"aaaa".getClass() == String assert "a${1}".getClass() in GString
9. primitives and wrappers ???? 原语和包装
groovy 不会扩大类型
int i i in long
int i i in Integer
-
在Groovy中 == 为 java中的 equale()
is() 为java 中的= 对象引用是否相同
-
在自动装箱拆箱上有不同,有扩展
-
更多的关键字
as def in trait
- default 必须放在switch 的最后一个case
groovy 官方文档
http://groovy-lang.org/documentation.html
精通groovy
http://www.ibm.com/developerworks/cn/education/java/j-groovy/j-groovy.html
Differences with java
http://www.groovy-lang.org/differences.html
网友评论