groovy 与 java 差异 (1)
来源:互联网 发布:电视直播哪个软件最好 编辑:程序博客网 时间:2024/04/29 06:57
groovy 与 java 差异 (1)
groovy尽最大可能使java程序员无门槛使用。但其中有不少差异,我尝试列举,方便java程序员学习并适用。
缺省导入
这些包在groovy中是缺省自动导入的,你无需显示再次导入。
java.io.*
java.lang.*
java.math.BigDecimal
java.math.BigInteger
java.net.*
java.util.*
groovy.lang.*
groovy.util.*
方法重载调用差异
groovy选择调用那个方法是在运行时决定的,基于参数在运行时的类型;反之,java是在编译时决定的,基于申明的类型(静态方式)。下面代码,使用java 编写,编译成java和groovy,但行为不同。
int method(String arg) { return 1;}int method(Object arg) { return 2;}Object o = "Object";int result = method(o);
在 Java中, 结果为:
assertEquals(2, result);
而在Groovy中:
assertEquals(1, result);
这时因为java使用静态类型,被申明为Ojbect类型;而groovy是运行时决定,参数为String,所以结果不同。
数组初始化
在 Groovy中, { … } 专门用于定义闭包。所以不能如下面代码方式定义数组:
int[] array = { 1, 2, 3}
正确定义如下。
int[] array = [1,2,3]
包范围可见
groovy 中类中省略修饰符的属性,并不像java那样,在包内可以访问。
class Person { String name}
反之,groovy创建一个属性,即属于private,并自动关联setter和getter方法。
如果你缺省需要创建包内private属性,可以使用@PackageScope注解:
class Person { @PackageScope String name}
== 号的行为差异
java中 == 意味比较对象地址,而groovy是比较其值,is方法实现地址比较,如:a.is(b) .
1 0
- groovy 与 java 差异 (1)
- groovy与java交互
- Java与C++的差异(1)
- Java与C++差异总结(1)
- Java与Groovy的操作
- Java与Groovy的整合
- Groovy与Java的区别
- Groovy与java的不同之处
- Groovy与Java的不同点
- Groovy与Java的区别
- Groovy与Java的不同点
- Groovy轻松入门——通过与Java的比较,迅速掌握Groovy(1)
- groovy与java比较,展现groovy的魅力
- Java与C++的差异
- JAVA 与C++ 的差异
- Groovy与Java的基本不同点
- java与Groovy的整合(I)
- java与Groovy的整合(II)
- The Linux Programming Interface 03 System Programming Concepts 系统编程观念
- 区分HTML中cite标签,q标签,blockquote标签
- maven3实战之maven使用入门
- 在Express的页面模板中的变量的定义与使用总结
- git錯誤信息
- groovy 与 java 差异 (1)
- PCA(Principal Components Analysis)
- 竖式问题 sprintf
- 【Python专题】 使用Py3及Pycharm的一些小问题(仅个人问题记录)
- [ JS 进阶 ] 闭包,作用域链,垃圾回收,内存泄露
- Jquery计算年龄
- Android字体颜色统一化标准化。
- C#通过三层连接数据库编写QQ(二)(含资源)
- 【智能路由器】反(fan)@强(qi@ang)路由