1.1  什么是Groovy?

groovy 是一个弱类型,动态语言,并且运行在JVM之上。它与java联系紧密。它是一个功能丰富和友好的java语言。

Groovy源代码,通过Groovy编译器编译成java字节码。为了在java虚拟机上运行Groovy代码,仅需要将Groovy JAR设置到classpath中即可。

Groovy支持标准的java结构:注解、generics、static imports、enums、varargs和lambda表达式。它简化了java语言并且改进了java语言的功能:properties, closures, dynamic methods, the Meta Object Protocol (MOP), native support for lists, maps, regular expressions, duck typing and the elvis operator。

1.2  Groovy classes and scripts

Groovy源文件的扩展名是.groovy。该源文件可以是Groovy脚本或者Groovy class。Groovy 脚本是一个代码列表,该代码列表中并不包含class的定义。Groovy脚本在编译的时候会转换为一个class,该class继承了groovy.lang.Script类。

使用一个简短的Groovy脚本写一个经典的“Hello world”程序。

println 'Hello World' 

1.3  Compatibility with Java

Groovy运行在JVM里,并且能够使用java 类库。每一个Groovy文件(脚本或class)都是java.lang.Object的子类。

Groovy代码能够调用java代码,并且java代码能调用Groovy代码。每一个Groovy类都会被编译成一个java类。并且你能在java代码中,使用new操作符来创建一个Groovy类的实例。该实例能被用于调用方法或者传递参数到一个java方法。Groovy类能继承java类并且java类也能继承Groovy类。

Groovy兼容java7的绝大多数语法,这将使得能够将java代码平滑的迁移到groov。

当前,groov并不支持java8的lambda表达式。

1.4  为什么使用Groovy?

Groovy聚焦于简化和易使用,作为其主导原则。

相比java,Groovy增强的功能:

l  Groovy语言功能

l  Groovy特殊的libraries。

l  通过Groovy 开发工具(Groovy Developer Kit),追加方法到已存在的java类,这个通常叫做Groovy JDK。

Groovy特性:

  • 简化—Groovy在一段的末尾,不需要分号(;)作为结束。return 可以省略,默认返回该方法内的最后一个表达式,方法参数两边的顶层括号可以省略。thepublic 关键字可以省略,在Groovy中默认就是public。它也是弱类型的。
  • 扩展性—Groovy允许在运行时改变类和方法,例如,在一个类中,被调用的方法不存在,该类能拦截这个调用并能起作用,因此,Groovy提供了一种扩展性很好的构建模式。
  • 易用性—Groovy有list、maps和正则表达式,这些直接嵌入到了该语言。

简化I/O。解析和构建XML、JSON和files,这是非常简单的,使用Groovy来做。

1.5  Groovy的默认导入包

Groovy自动导入下面的包和类,在Groovy中能被直接使用,而无需声明包名。

  • groovy.lang.*
  • groovy.util.*
  • java.lang.*
  • java.util.*
  • java.net.*
  • java.io.*
  • java.math.BigInteger
  • java.math.BigDecimal

为了之后的访问,Groovy允许简化导入,如:import javax.swing.WindowConstants as WC.

1 Groovy的更多相关文章

  1. Java——搭建自己的RESTful API服务器(SpringBoot、Groovy)

    这又是一篇JavaWeb相关的博客,内容涉及: SpringBoot:微框架,提供快速构建服务的功能 SpringMVC:Struts的替代者 MyBatis:数据库操作库 Groovy:能与Java ...

  2. 用Groovy构建java脚本

    我是做工作流项目的,工作流中各个模板引擎都需要要执行一个动态业务,这些动态业务有多种实现方式,最常用的就是用户自己写一段脚本文件,然后工作流引擎执行到这里的时候,运行这个脚本文件. 这个运行脚本文件的 ...

  3. Groovy学习--基本语法了解

    x项目用到gradle,学习gradle之前准备先过一遍Groovy的语法.这里参考:Groovy入门. 该博客没有系统的讲解Groovy的语法和原理,仅仅只是罗列了使用Groovy的常规方法.我照着 ...

  4. How to use groovy script on jenkins

    1. Install groovy plugin 2. Add a step of groovy. (normal & systerm) 3. Execute groovy script im ...

  5. Java8-Function使用及Groovy闭包的代码示例

    导航 定位 概述 代码示例 Java-Function Groovy闭包 定位 本文适用于想要了解Java8 Function接口编程及闭包表达式的筒鞋. 概述 在实际开发中,常常遇到使用模板模式的场 ...

  6. Groovy中文教程(链接收藏)

    学习Gradle前,需要有一个Groovy语言的基础,以免被Groovy的语法困扰,反而忽略了Gradle的知识.这里有一个Groovy的简明中文教程文档,可以快速学习Groovy的一些语法:http ...

  7. Groovy入门经典 随书重点

    1 数值和表达式 1.1数值 整数是Integer类的实例 有小数部分的数值是BigDecimal类的实例 不同于java,没有基础数据类型 一切皆对象的概念重于java 1.2表达式 两个整数的除法 ...

  8. Groovy解析xml并且注入Project,TestSuite,TestCase级别的custom properties

    import com.eviware.soapui.support.GroovyUtils import groovy.util.XmlParser def groovyUtils = new Gro ...

  9. Groovy入门教程

    Groovy入门教程 kmyhy@126.com  2009-5-13 一.groovy是什么 简单地说,Groovy 是下一代的java语言,跟java一样,它也运行在 JVM 中. 作为跑在JVM ...

  10. 30分钟groovy快速入门并掌握(ubuntu 14.04+IntelliJ 13)

    本文适合于不熟悉 Groovy,但想快速轻松地了解其基础知识的 Java开发人员.了解 Groovy 对 Java 语法的简化变形,学习 Groovy 的核心功能,例如本地集合.内置正则表达式和闭包. ...

随机推荐

  1. phper 需要学习js

  2. php的变量引用详解

    <?php class SimpleClass { // property declaration public $var = 'a default value'; // method decl ...

  3. 面试题:hibernate第三天 一对多和多对多配置

    1.1 一对多XML关系映射 1.1.1 客户配置文件: <?xml version="1.0" encoding="UTF-8"?> <!D ...

  4. php学习笔记-elseif

    <?php if(condition1) { func1(); }elseif(condition2) { func2(); }else { func3(); } ?> elseif需要明 ...

  5. SingletonPattern(23种设计模式之一)

    设计模式六大原则(1):单一职责原则 设计模式六大原则(2):里氏替换原则 设计模式六大原则(3):依赖倒置原则 设计模式六大原则(4):接口隔离原则 设计模式六大原则(5):迪米特法则 设计模式六大 ...

  6. 8.View类

    Basic Concepts      在Modle/View 结构中,View从Model中提取数据,并显示给用户.View显示数据的方式不一定与Model中数据排列方式相同,也可能与底层数据结构完 ...

  7. Entity Framework Tutorial Basics(27):Update Entity Graph

    Update Entity Graph using DbContext: Updating an entity graph in disconnected scenario is a complex ...

  8. debug---null Pointer Exception--一步步查找(1)

    找到对应的226行代码: 通过debug打断点,然后选中需要查看的代码,右击,选择Evaluate Expresstion,选择确认,就可以弹出具体的值,发现真的为null. 通过simon帮忙分析, ...

  9. 关于Java中hashCode方法的实现源码

    首先来看一下String中hashCode方法的实现源码. public int hashCode() { int h = hash; if (h == 0 && value.leng ...

  10. 1506-122 (S) Expecting pointer to struct or union.

    __你们 大胆 猜 是什么错.. __ 很尴尬的错误..就是 结构体指针. ___只有结构体 指针 可以用 ->   这个符号哦.. 所以 你只要 将  ->  改成   .    , 就 ...