SlideShare a Scribd company logo
胡键www.groovyq.netGroovy for Java Programmer
借用Python的一个漫画Groovy can make you fly!http://www.mostly-useless.com/blog/2007/12/07/python-makes-you-fly/
兼容绝大多数Java语法良好的互操作性代码简练,去掉了大部分的boilerplate code动态语言的好处健康的生态系统Groovy对于Java开发者的优势
自动import常用的包:java.lang、java.util、java.io、java.netgroovy.lang、groovy.util缺省使用更精确的数值类:java.math.BigDecimaljava.math.BigIntegerGroovy的特点
简化的语法:System.out.println => printlnSystem.out.print => print在参数个数>1时,可省略括号a.f p1,p2return可选,省略时,最后一个语句值为返回值;可选方法、类缺省是public?.操作符:a?.f()assert总是有效:power assert改进的循环:1.upto(3){…} 、 3.times{…} 、 0.step(3,1){…}Groovy TruthAs操作符Groovy的特点
让集合变得更好用优化定义:List: [1, 3, 4, 1, 8, 9, 2, 6]Map: ['C++' : 'Stroustrup' , 'Java' : 'Gosling' , 'Lisp' : 'McCarthy' ][]操作符,索引类型可以是:正、负、区间、键。大量方便的方法:each、reverseEach、eachWithIndex、collect、find、findAll、findIndexOf、sum、inject、join、flatten、groupBy、any、every……Groovy的特点
字符串的改进三种定义:’’、””、””””””GString:“Today $company stock closed at $price”字符串=字符集合,可直接使用任何集合方法和操作符正则表达式:定义方式~”RegEx”或/RegEx/匹配: =~、==~Groovy的特点
Duck Typing如果走路像鸭子,叫声像鸭子,那它就是鸭子Groovy的特点
闭包无处不在定义:def c= {…}特点:似函数而非函数,代码即数据Groovy的特点
GroovyBean:JavaBean的升级版定义的是属性,故无需getter/setter构造函数中可使用命名参数缺省为publicGroovy的特点
强大的MOP,运行时改变类的行为方法拦截before、after、around方法注入给类添加新方法方法合成“拦截、缓存、调用”模式Groovy的特点
便捷的XML处理DOMCategoryXMLParserXMLSlurperGroovy的特点
AST Transformation编译时的MOP,直接作用于字节码,类似静态的AOP编织过程Groovy缺省提供了大量的Transformation@Category、@Mixin、@Delegate、@Immutable、@Lazy、@Singleton、@Log、@Newify、@PackageScope、@Bindable、@Vetoable、@EqualsAndHashCode……允许创建自己的TransformationGroovy的特点
GDK给Java对象添加了大量便捷方法一个GSQL的例子Groovy的特点
Builder缺省的几个Builder:MarkupBuilder、AntBuilder、SwingBuilder……Groovy的特点
Builder构建DSL的利器:扩展BuilderSupport利用FactoryBuilderSupportGroovy的特点
Groovy的生态系统除了这些,几乎主流Java开源框架都支持Groovy。其余请参考:http://groovy.codehaus.org/Modules
大量的参考书籍
关于更多Groovy/Grails的中文信息,请访问:谢谢!http://www.groovyq.net

More Related Content

PPT
Grails敏捷项目开发
PPTX
Java bytecode
PDF
Python&GUI
PPT
OpenParty西安:How to be a good copycat?
PDF
Our Choice:电子书的新交互方式探讨
PDF
移动开发的性能优化
PPTX
Grails:下一代Java Web开发框架
PDF
OpenParty西安:What does DevOps mean?
Grails敏捷项目开发
Java bytecode
Python&GUI
OpenParty西安:How to be a good copycat?
Our Choice:电子书的新交互方式探讨
移动开发的性能优化
Grails:下一代Java Web开发框架
OpenParty西安:What does DevOps mean?

Viewers also liked (11)

PPTX
持续交付 - 使用云计算和虚拟化技术
PPTX
Groovy:Candy for Java Developers
PDF
Portafolio etp
PPTX
OpenParty西安:DSL in Groovy
PPTX
浅说Vertx
PDF
Factoring: Liquidez inmediata para crecer
PPS
PDF
PDF
Widget Financiero
ODP
Camping
PPT
持续交付 - 使用云计算和虚拟化技术
Groovy:Candy for Java Developers
Portafolio etp
OpenParty西安:DSL in Groovy
浅说Vertx
Factoring: Liquidez inmediata para crecer
Widget Financiero
Camping
Ad

Similar to Groovy for Java Programmer (20)

PPT
轻量级Flash服务器开发框架(刘恒)
PDF
Introduction to Golang final
PPT
Java 1(Java概述)
PPT
千呼萬喚始出來的Java SE 7
PPT
Groovy简介
PPTX
Go 語言基礎簡介
PPT
beidakejian
PDF
11132020_python tutor.pdf
PPTX
Golang 入門初體驗
PPTX
为什么要学Python
PPT
Using google appengine (2)
PPT
Using google appengine_1027
PPT
從 Java programmer 的觀點看 ruby
PPT
Using google appengine_final
PPTX
Golangintro
PPT
网易移动自动化测试实践(孔庆云)
PDF
Java Jdk6学习笔记[Ppt]
PDF
Recycle Open Source Projects
PDF
2006 recycle opensourceprojects
PPT
Pyramid框架介绍
轻量级Flash服务器开发框架(刘恒)
Introduction to Golang final
Java 1(Java概述)
千呼萬喚始出來的Java SE 7
Groovy简介
Go 語言基礎簡介
beidakejian
11132020_python tutor.pdf
Golang 入門初體驗
为什么要学Python
Using google appengine (2)
Using google appengine_1027
從 Java programmer 的觀點看 ruby
Using google appengine_final
Golangintro
网易移动自动化测试实践(孔庆云)
Java Jdk6学习笔记[Ppt]
Recycle Open Source Projects
2006 recycle opensourceprojects
Pyramid框架介绍
Ad

Groovy for Java Programmer