1、Default imports,默认情况下,导入下面的包: java.io. * java.lang。* java.math.BigDecimal中 java.math.BigInteger中 java.net.* java.util中.* groovy.lang.* groovy.util.* 2、Multi-methods,groovy在运行时根据参数的类型选择要调用的方法,称为运行时调度,而java中在编译时。 3、groovy中{...}被用于闭包,所以声明数组要使用 [] 比如:int[] array = [1,2,3]。 4、Package scope visibility,在groovy中省略成员变量修饰符不会导致像java一样包范围内可见,他会创建属性自动关联get和set方法。 可以通过@PackageScope注解创建包私有字段。 5、groovy中不支持java7的ARM,他使用依赖于闭包的各种方法。 new File('/path/to/file').eachLine('UTF-8') { println it } 6、内部类 7、lambdas:java8支持lambda和方法引用,groovy不支持。 8、GStrings 9、字符串:groovy中单引号字符串是String类型,双引号字符串看是不是有插值,有插值则是GString类型。三重单引号字符串是普通的java.lang.String。 10、包装类 11、在Java中==意味着对象的基本类型或标识的相等性。在Groovy ==中a.compareTo(b)==0,如果是Comparable, 则转换为a.equals(b)。 为了检查身份,有is。例如 a.is(b)。 12、额外的关键字: as、def、in、trait