Groovy与Java的比较(上)
1.支持函数式编程,不需要main函数
2.默认导入常用的包,包括:
java.io
java.math
java.net
java.util
groovy.lang
groovy.util
3.断言不支持jvm的-ea参数进行开关
4.支持对对象进行布尔求值
5.类不支持default作用域,且默认作用域为public
6.受检查类型异常(Checked Exception)也可以不用捕获
7.一些新的运算符
8.groovy中基本类型也是对象,可以直接调用对象的方法,如:
但浮点运算是基于BigDecimal类
9.字符串的处理
String对象和java类似,但没有character的概念,没有迭代每个字符的方法。
使用单引号定义普通字符串,双引号定义的字符串可以包含Groovy运算符,$符号则需要转义("\$"),如:
[img]http://dl.iteye.com/upload/attachment/149140/11bdba24-33f2-394b-8dcf-47decc007c6e.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/149144/dde06408-6e4d-3ab0-b2fb-9e3d690d4695.jpg[/img]
1.支持函数式编程,不需要main函数
2.默认导入常用的包,包括:
java.io
java.math
java.net
java.util
groovy.lang
groovy.util
3.断言不支持jvm的-ea参数进行开关
4.支持对对象进行布尔求值
5.类不支持default作用域,且默认作用域为public
6.受检查类型异常(Checked Exception)也可以不用捕获
7.一些新的运算符
8.groovy中基本类型也是对象,可以直接调用对象的方法,如:
1. assert (-12345).abs() == 12345
但浮点运算是基于BigDecimal类
1. assert 0.25 instanceof BigDecimal
2. assert 0.1 * 3 == 0.3
3. assert 1.1 + 0.1 == 1.2
4. assert 1 / 0.25 == 4
9.字符串的处理
String对象和java类似,但没有character的概念,没有迭代每个字符的方法。
使用单引号定义普通字符串,双引号定义的字符串可以包含Groovy运算符,$符号则需要转义("\$"),如:
[img]http://dl.iteye.com/upload/attachment/149140/11bdba24-33f2-394b-8dcf-47decc007c6e.jpg[/img]
[img]http://dl.iteye.com/upload/attachment/149144/dde06408-6e4d-3ab0-b2fb-9e3d690d4695.jpg[/img]