Groovy笔记(1)_简介

时间:2023-01-16 17:43:56

Groovy简介:

 

参考书籍:《Groovy入门经典》、《Groovy in Action》

 

1、Groovy是Java平台上脚本语言,抽象程度更高

  • 可以更简单快速地开发,可以编写更少的代码。

2、与Java语言无缝集成,可称为“超级Java”

  • 使用“类Java”语法,Java成语员可以快速过渡。
  • Groovy与Java二进制兼容,都生成字节码,所以可以与使用Java语言所编写的框架和组件完美继承,并且效率安全方面比其他脚本语言要高。
  • Groovy对象就是Java对象,使用与JDK相同的API。
  • 可以保护整个Java产业在Java上的巨大投资。

3、在中小型项目中可以替代Java,在大型Java项目中可以嵌入Groovy应用。

 

Groovy特征:

 

1、Groovy = Java - 重复的样板代码

                            +可选的动态类型

                            +闭包(closures)

                            +领域规范语言(DSL)

                            +生成器(builders)

                            +元编程(metaprogramming)

2、Groovy是没有类型/修饰符/return/iterator,不需要导入集合的Java。Groovy丢掉了许多Java的包袱。

3、不能确定变量类型时将变量类型设为Object

4、DLS:domain specific languages

5、生成器:可以生成XML/HTML/Swing树状数据结构

6、元编程:运行时对类增加行为,类似于AOP。

 

 

搭建开发环境:

 

 

1、JDK1.5或更高版本

2、Groovy-1.5.4或更高版本

3、Eclipse3.3 http://www.eclipse.org

4、MyEclipse6插件或更高版本(Web版本需要)

  • eclipse - help - install/update - Serch for new features to install - url - New Remote Site - URL=

5、MySQL5数据库

6、Jad反编译工具及Eclipse插件(可选)

 

直接来源于Java语法的特性

 

1、关键字与语句

2、类,接口,属性,方法的定义。

3、使用new创建对象。

4、包导入机制。

5、try/catch/finally异常处理机制。

6、运算符,表达式,复制。

7、控制结构。

8、代码注释。

 

Groovy自动导入如下包:

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

 

数值:

 

 

1、Groovy的一切都是对象。自动装箱与拆箱

2、整数123,-12,0都是Integer类的对象。

  • 定义变量(使用动态类型):def price = 100 等同于 Integer price =new Integer(100)
  • 3.times{println 'Hello'} 打印3次, 3是对象,所以可以用方法。
  • 语句结尾可以不用 ";"  结尾。

3、浮点数1.5,-3.14都是BigDecimal类的对象

4、数值类型:

  • Integer                                  15
  • Long                                      100L       100l
  • Float                                      1.23f       4.56F
  • Double                                   1.23d     4.55D
  • java.math.BigInteger             123g      456G
  • java.math.BigDecimal             1.23       1.23g      1.23G

 

GDK数值方法:

 

 

1、def store = ' '

     10.times{store += 'x'}

     assert store =='xxxxxxxxxx'

 

2、store = ' '

     1.upto(5){number -> store +=number}

     assert store = '12345'

 

3、store = ' '

     2.downto(-2){number -> store = number  + ' '}

     assert stroe = '2 1 0 -1 -2'

 

4、store = ' '

    0.step(0.5,0.1){number -> store += number  + ' '}        从0开始加到0.5,每次加0.1

    assert store == '0 0.1 0.2 0.3 0.4'