Java平台新的利器——Groovy语言

What,什么是Groovy?
Groovy:
1.是一个敏捷的、动态的基于Java虚拟机的编程语言
2.以Java语言的长处作为基础,但添加了一些来自于Python、Ruby和Smalltalk等语言的强大功能
3.几乎为0的学习曲线,就将现代编程语言的特性带给了Java开发者
4.支持DSL(Domain-Specific Languages)和其它简洁的语法,所以代码更易读和易维护
5.使得编写shell和构建脚本更简单
6.减少了在开发web、GUI、database或控制台程序时编写的基础代码,提高开发者的生产率
7.对单元测试和mock提供支持,使它们更简单的使用
8.能无缝地与现有的Java对象和库进行集成
9.编译成Java字节码,所以你可以在任何使用java的地方引用groovy编写的对象和库
......
有人说Groovy是Java帝国的王储,江南白衣说它是Java的“私生子”。我觉得Groovy就像是Java这棵大树上新长出来的粗壮的树枝。

Groovy就像一个“超级Java版本”,它不仅具有Java企业级开发的能力,也具有一些很酷的提高生产率的特性(比如闭包、动态类型)。如果你是开发人员、测试人员或者脚本编写人员,你一定会喜欢groovy。

基于Groovy语言最著名的框架算是Grails了,名称大概来自于Ruby的Rails框架。Grails是一套用于快速Web应用开发的开源框架,它基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,从而为大家带来一套能实现超高生产力的一站式框架。


Where,它与Java有哪些不同?
1.默认导入以下库,所以在groovy中无需再import:
* java.io.*
* java.lang.*
* java.math.BigDecimal
* java.math.BigInteger
* java.net.*
* java.util.*
* groovy.lang.*
* groovy.util.*

2.以下是Java开发者刚开始使用groovy时常犯的错误:
2.1==操作符表示整个类型的比较。在Java里面,==表示比较原始类型的值或者比较对象的标识符(引用)。但在groovy里面采用了自动装箱后,这会让Java开发者感到困惑,groovy里面==就等价于equals()。如果你是在需要比较对象的标识符,可以使用is()方法,如foo.is(bar);
2.2'in'是一个关键字,所以不能给变量起名为in了。;
2.3要定义数组,不能像Java里int[] a = {1,2,3};这样写,必须写成int[] a = [1,2,3]的样式;

3.必需要知道的一些语法特性:
3.1每句代码后的分号‘ ; ’是可选的;
3.2方法里面的return关键字也是可选的;
3.3静态方法内也可以使用this关键字,表示引用到当前类(而不是类实例);
3.4默认情况下,类和方法都是public的;
3.5暂时不支持内部类,通常你可以使用groovy的闭包特性替代;
3.6方法签名上的throws子句不受编译器检查,因为groovy内检查异常和非检查异常没有区别;
3.7在groovy里,如果你像在Java里面那样使用未定义的类成员或者传递错误类型的参数,不会收到编译器错误。

4.Groovy中Java没有的特性
4.1闭包
4.2对List、Map等容器的本地语法支持
4.3正则表达式的本地支持
4.4多态的迭代器和强大的switch语句(支持string等类型)
4.5同时支持动态和静态类型,所以在方法、类成员和局部变量都可以省略类型声明
4.6string里面可以嵌入string。比如 'he said "cheese!" again'
4.7新增许多新的helper方法到JDK
4.8编写bean更简单,添加事件监听器也更简单
4.9使用?操作符完成安全的引用导航。比如要调用foo对象的bar()方法,为了防止类似java的NullPointerException,可以写成foo?.bar()。这样减少很多判断为null的代码。

参考来源:http://groovy.codehaus.org/Differences+from+Java
更多其它的与Java的区别,请参考另外一个现成的帖子:http://www.blogjava.net/BlueSUN/archive/2007/03/10/103014.html


Why,为什么使用Groovy?
1.它能无缝与Java集成,随处使用现有的Java库,能和Java相互调用。这是最重要的前提。
2.Groovy的目标之一是简化开发,它从语言级别帮开发者节省很多代码。
3.由于是动态类型的语言,在极限编程等注重测试的开发过程中,Groovy能更快捷地随时开展测试。

当然,脚本语言是不会取代系统编程语言的,它们会相辅相成。系统编程语言一般用在大型的、计算密集的、需求变更慢的项目中,而脚本语言则适合用在GUI、模块粘合、快速变化的小型项目中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值