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、模块粘合、快速变化的小型项目中。
分享到:
相关推荐
综上所述,Gradle之所以能够成为现代Java项目构建的新利器,是因为它结合了Ant的灵活性和Maven的规范性,同时抛弃了XML,利用Groovy语言的简洁和强大,提供了一个更加直观和易用的构建工具。它支持多语言项目,有着...
标题中的“Groovy和Java相互调用1”指的是在编程时如何在Groovy语言环境中调用Java类,以及反之,如何在Java程序中调用Groovy类。这是一种跨语言交互的方式,特别是在混合使用Groovy和Java的项目中非常常见。 ...
Groovy是一种基于Java平台的动态脚本语言,它在Java开发者中越来越受欢迎,因为它提供了简洁、灵活的语法,以及强大的动态编程能力。Groovy与Java兼容性极佳,可以直接调用Java类库,使得它在Java生态系统中具有广泛...
Groovy 是一种基于 JVM 的动态编程语言,与 Java 兼容,但语法更加简洁和灵活。GMock 在 Groovy 中作为一个 mock 工具,允许开发者创建模拟对象来替代真实对象,以便在测试中隔离被测代码,避免外部依赖的影响。这...
- **热部署**:当Groovy脚本更新时,无需重新编译或重启Java应用,只需更新数据库中的脚本,Java程序就能即时感知并执行新的逻辑。 - **灵活的业务逻辑**:业务规则可以根据需求快速调整,无需改变Java源码,降低...
Groovy是一种运行在Java平台上的动态脚本语言,它与Java紧密集成,提供了一种简洁、灵活的方式来编写Java代码。Groovy不仅支持静态类型检查,还可以在运行时动态地编译和执行代码,这使得它在Java平台中的应用场景...
在Java开发中,Groovy是一种强大的、动态类型的脚本语言,它可以无缝地与Java代码集成,为开发者提供了更简洁、灵活的语法。本文将深入探讨在Java项目中使用Groovy的三种主要方式,并阐述它们各自的优势和应用场景。...
Groovy是一种基于Java平台的动态编程语言,它与Java语法相似,但提供了更简洁、灵活的语法。Groovy代码可以无缝地与Java代码集成,因为它们都编译成字节码并能在Java虚拟机(JVM)上运行。这个项目的核心目标就是...
Groovy 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法简洁,减少了代码...
Groovy 是 JVM 的一个替代语言 — 替代 是指可以用 Groovy 在 Java 平台上进行 Java 编程,使用方式基本与使用 Java 代码的方式相同。在编写新应用程序时,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有...
Groovy是另一种在Java平台上运行的动态语言,它的语法与Java相似,但更简洁。Groovy的优势在于它可以无缝地与Java代码集成。在Java项目中,使用Groovy通常更加方便,因为不需要额外的引擎,可以直接创建`GroovyShell...
Groovy入门经典是一个唯一能够扩展Java平台的脚本语言,内容全面详尽,浅显易懂,易于选择性阅读。可以作为对Groovy语言感兴趣的计算机软件开发人员的参考书。需要的朋友们就赶紧来下载试试吧! Groovy提供类似...
Java 8及以上版本引入了Lambda表达式、Stream API等新特性,增强了语言的简洁性和效率。 5. **Groovy**: Groovy是基于JVM的动态语言,语法简洁,与Java高度兼容,可以直接调用Java库。Groovy可以用于编写Gradle构建...
《Show Your ToolBox——锋利的Groovy》 在IT领域,工具的选择和使用往往直接影响到工作效率和项目质量。本文将深入探讨Groovy这门强大的动态编程语言,它以其灵活性和与Java的紧密集成,成为了许多开发者的得力...
.., Groovy是唯一能够扩展Java平台的脚本语言。Groovy提供类似于Java的语法结构,本地化支持映射和列表、方法、类,闭包和构造器等结构。由于具有动态弱类型,以及无缝访问JavaAPI等特性,Groovy语言非常适合子开发...
- **定义**:Groovy是一种面向对象的编程语言,它直接运行在Java平台上,并且能够与现有的Java代码无缝集成。 - **特点**: - **语法简洁**:Groovy提供了更为简洁、动态的语法特性,使得编写代码变得更加高效。 -...
Making Java Groovy is a practical handbook for developers who want to blend Groovy into their day to day work with Java It starts by introducing the key differences between Java and Groovy and how you...
Groovy环境搭建教程中的例子工程,纯Java、纯Groovy以及Java+Groovy混合 教程参考:http://blog.csdn.net/rcom10002/archive/2011/06/26/6568557.aspx
这一改变为Scala、Groovy等现代动态语言在Java平台上的普及提供了可能。 另外,Java 7引入了新的文件系统API(NIO.2),提供了更好的异步I/O支持和对文件系统操作的增强,使得开发者能够更方便地处理文件和目录,...
《实战Java虚拟机——JVM故障诊断与性能优化》内容简介:随着越来越多的第三方语言(Groovy、Scala、JRuby等)在Java虚拟机上运行,Java也俨然成为一个充满活力的生态圈。本书将通过200余示例详细介绍Java虚拟机中的...