大佬教程收集整理的这篇文章主要介绍了Groovy与Java的区别,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
##默认以Bigdecimal类型来进行数学计算 浮点数默认的是Bigdecimal
类型,因此3.14不会被Groovy创建成double
或float
,而被创建成Bigdecimal
。这导致人们相信Groovy的计算效率非常低下。 如果你确实想用float
或double
类型,一定要为变量加上float
或double
关键字,如下:
double piDouble = 3.14 float piFloat = 3.14??
或者,你也可以使用后缀的形式来指定,例如:
def piDouble = 3.14d def piFloat = 3.14f??
你也可查看Groovy数学计算章节。 ##默认引入的包 下面的所有包和类在默认情况下已经被引入,也就是说,你不再需要引入下面这些包了:
##常见错误 如果你是java程序员,下面这个列表可能就是你经常会弄错的地方:
==
都等于equals()
。在Java当中,原始类型进行比较,==
即为equals()
,对象进行比较,==
的意思是值相等。自从我们使用了自动包装之后,这个问题对Java开发者来说就有些混淆了。为了简单起见,在Groovy中,==
就是equals()
。假如你确实需要判定值相等,你可以使用像(foo.is(bar))
这样的is()
方法。is()
方法不支持null
,但是在这里你依然可以使用==
,例如:foo==null
。in
是关键字,因此,你不能把他当作变量名来使用。int[] a = {1,2,3};
而必须写成这样
int[] a = [1,3];
for (int i=0; i < len; i++) {...}
在groovy当中,你当然可以使用上面这种方式,但是你也可以只使用一个计数变量替代他,如:
for (i in 0..len-1) {...}
或者
for (i in 0..< len) {...}
或者
len.times {...}
##需要注意的事情
return
关键字是可选的。this
关键字,用于引用该类。public
。protected
修饰符在Groovy中和在Java中是一样的。也就是说,在同一个包和派生类当中,他们是友好可见的。throws
子句在Groovy编译器中是不被检查的。因为检查与否的异常没有区别。##常见陷阱 Java程序员用分号来来终止语句而并不使用闭包。它们在类定义的时候初始化实例,所以你可能有时候会看到如下的代码:
class Trial { private final Thing thing = new Thing ( ) ; { thing.doSomething ( ) ; } }
许多Groovy程序员避开使用分号(有的却一直在使用分号 - 这是编码风格的问题。)。这导致了上述代码的书写困难,如下:
class Trial { private final thing = new Thing ( ) { thing.doSomething ( ) } }
这将抛出@H_9_5@missingMethodException异常! 这里的问题是,在这种情况下,换行符不是一个语句结束,因此下面的代码快被当成闭包来处理,作为参数传递给Thing
的构造函数。对许多人来说这很诡异,但这是事实。假如你想通过这种方式来初始化实例,实际上是强制需要分号的:
class Trial { private final thing = new Thing ( ) ; { thing.doSomething ( ) } }
这种方式初始化后的块定义显然是初始化一个实例。 另外一个文档列出了一些你必须知道的误区和一些最佳实践以避免这些陷阱。 ##Java中不可用的一些Groovy新特性
以上是大佬教程为你收集整理的Groovy与Java的区别全部内容,希望文章能够帮你解决Groovy与Java的区别所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。