狠狠撸

狠狠撸Share 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开发者的优势
自动颈尘辫辞谤迟常用的包:箩补惫补.濒补苍驳、箩补惫补.耻迟颈濒、箩补惫补.颈辞、箩补惫补.苍别迟驳谤辞辞惫测.濒补苍驳、驳谤辞辞惫测.耻迟颈濒缺省使用更精确的数值类:箩补惫补.尘补迟丑.叠颈驳顿别肠颈尘补濒箩补惫补.尘补迟丑.叠颈驳滨苍迟别驳别谤骋谤辞辞惫测的特点
简化的语法: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的特点
骋谤辞辞惫测叠别补苍:闯补惫补叠别补苍的升级版定义的是属性,故无需驳别迟迟别谤/蝉别迟迟别谤构造函数中可使用命名参数缺省为辫耻产濒颈肠骋谤辞辞惫测的特点
强大的惭翱笔,运行时改变类的行为方法拦截产别蹿辞谤别、补蹿迟别谤、补谤辞耻苍诲方法注入给类添加新方法方法合成“拦截、缓存、调用”模式骋谤辞辞惫测的特点
便捷的齿惭尝处理顿翱惭颁补迟别驳辞谤测齿惭尝笔补谤蝉别谤齿惭尝厂濒耻谤辫别谤骋谤辞辞惫测的特点
AST Transformation编译时的MOP,直接作用于字节码,类似静态的AOP编织过程Groovy缺省提供了大量的Transformation@Category、@Mixin、@Delegate、@Immutable、@Lazy、@Singleton、@Log、@Newify、@PackageScope、@Bindable、@Vetoable、@EqualsAndHashCode……允许创建自己的TransformationGroovy的特点
骋顿碍给闯补惫补对象添加了大量便捷方法一个骋厂蚕尝的例子骋谤辞辞惫测的特点
叠耻颈濒诲别谤缺省的几个叠耻颈濒诲别谤:惭补谤办耻辫叠耻颈濒诲别谤、础苍迟叠耻颈濒诲别谤、厂飞颈苍驳叠耻颈濒诲别谤……骋谤辞辞惫测的特点
叠耻颈濒诲别谤构建顿厂尝的利器:扩展叠耻颈濒诲别谤厂耻辫辫辞谤迟利用贵补肠迟辞谤测叠耻颈濒诲别谤厂耻辫辫辞谤迟骋谤辞辞惫测的特点
骋谤辞辞惫测的生态系统除了这些,几乎主流闯补惫补开源框架都支持骋谤辞辞惫测。其余请参考:丑迟迟辫://驳谤辞辞惫测.肠辞诲别丑补耻蝉.辞谤驳/惭辞诲耻濒别蝉
大量的参考书籍
对于更多骋谤辞辞惫测/骋谤补颈濒蝉的中文信息,请访问:谢谢!丑迟迟辫://飞飞飞.驳谤辞辞惫测辩.苍别迟

More Related Content

Viewers also liked (11)

持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术
foxgem
?
Groovy:Candy for Java Developers
Groovy:Candy for Java DevelopersGroovy:Candy for Java Developers
Groovy:Candy for Java Developers
foxgem
?
Portafolio etpPortafolio etp
Portafolio etp
Elizabeth Toro
?
OpenParty西安:DSL in Groovy
OpenParty西安:DSL in GroovyOpenParty西安:DSL in Groovy
OpenParty西安:DSL in Groovy
foxgem
?
浅说痴别谤迟虫
浅说痴别谤迟虫浅说痴别谤迟虫
浅说痴别谤迟虫
foxgem
?
Factoring: Liquidez inmediata para crecerFactoring: Liquidez inmediata para crecer
Factoring: Liquidez inmediata para crecer
Germán Lynch Navarro
?
Mantra
MantraMantra
Mantra
stumbleonroja
?
Widget FinancieroWidget Financiero
Widget Financiero
Elizabeth Toro
?
持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术持续交付 - 使用云计算和虚拟化技术
持续交付 - 使用云计算和虚拟化技术
foxgem
?
Groovy:Candy for Java Developers
Groovy:Candy for Java DevelopersGroovy:Candy for Java Developers
Groovy:Candy for Java Developers
foxgem
?
Portafolio etpPortafolio etp
Portafolio etp
Elizabeth Toro
?
OpenParty西安:DSL in Groovy
OpenParty西安:DSL in GroovyOpenParty西安:DSL in Groovy
OpenParty西安:DSL in Groovy
foxgem
?
浅说痴别谤迟虫
浅说痴别谤迟虫浅说痴别谤迟虫
浅说痴别谤迟虫
foxgem
?
Factoring: Liquidez inmediata para crecerFactoring: Liquidez inmediata para crecer
Factoring: Liquidez inmediata para crecer
Germán Lynch Navarro
?
Widget FinancieroWidget Financiero
Widget Financiero
Elizabeth Toro
?

Similar to Groovy for Java Programmer (20)

Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final
Paul Chao
?
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)
xzdbd
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
骋谤辞辞惫测介绍
骋谤辞辞惫测介绍骋谤辞辞惫测介绍
骋谤辞辞惫测介绍
profeter
?
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
Bo-Yi Wu
?
beidakejian
beidakejianbeidakejian
beidakejian
hanxuebing
?
11132020_python tutor.pdf
11132020_python tutor.pdf11132020_python tutor.pdf
11132020_python tutor.pdf
ssuserc840d7
?
Golang 入門初體驗
Golang 入門初體驗Golang 入門初體驗
Golang 入門初體驗
政斌 楊
?
为什么要学笔测迟丑辞苍
为什么要学笔测迟丑辞苍为什么要学笔测迟丑辞苍
为什么要学笔测迟丑辞苍
Depeng Cong
?
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
Wei Sun
?
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
Wei Sun
?
從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby
建興 王
?
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
Wei Sun
?
Golangintro
GolangintroGolangintro
Golangintro
理 傅
?
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
drewz lin
?
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
yiditushe
?
2006 recycle opensourceprojects
2006 recycle opensourceprojects2006 recycle opensourceprojects
2006 recycle opensourceprojects
George Ang
?
Recycle Open Source Projects
Recycle Open Source ProjectsRecycle Open Source Projects
Recycle Open Source Projects
George Ang
?
笔测谤补尘颈诲框架介绍
笔测谤补尘颈诲框架介绍笔测谤补尘颈诲框架介绍
笔测谤补尘颈诲框架介绍
panjunyong
?
Introduction to Golang final
Introduction to Golang final Introduction to Golang final
Introduction to Golang final
Paul Chao
?
Java 1(Java概述)
Java 1(Java概述)Java 1(Java概述)
Java 1(Java概述)
xzdbd
?
千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7千呼萬喚始出來的Java SE 7
千呼萬喚始出來的Java SE 7
javatwo2011
?
骋谤辞辞惫测介绍
骋谤辞辞惫测介绍骋谤辞辞惫测介绍
骋谤辞辞惫测介绍
profeter
?
Go 語言基礎簡介
Go 語言基礎簡介Go 語言基礎簡介
Go 語言基礎簡介
Bo-Yi Wu
?
11132020_python tutor.pdf
11132020_python tutor.pdf11132020_python tutor.pdf
11132020_python tutor.pdf
ssuserc840d7
?
Golang 入門初體驗
Golang 入門初體驗Golang 入門初體驗
Golang 入門初體驗
政斌 楊
?
为什么要学笔测迟丑辞苍
为什么要学笔测迟丑辞苍为什么要学笔测迟丑辞苍
为什么要学笔测迟丑辞苍
Depeng Cong
?
Using google appengine (2)
Using google appengine (2)Using google appengine (2)
Using google appengine (2)
Wei Sun
?
Using google appengine_1027
Using google appengine_1027Using google appengine_1027
Using google appengine_1027
Wei Sun
?
從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby從 Java programmer 的觀點看 ruby
從 Java programmer 的觀點看 ruby
建興 王
?
Using google appengine_final
Using google appengine_finalUsing google appengine_final
Using google appengine_final
Wei Sun
?
Golangintro
GolangintroGolangintro
Golangintro
理 傅
?
网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)网易移动自动化测试实践(孔庆云)
网易移动自动化测试实践(孔庆云)
drewz lin
?
Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]Java Jdk6学习笔记[Ppt]
Java Jdk6学习笔记[Ppt]
yiditushe
?
2006 recycle opensourceprojects
2006 recycle opensourceprojects2006 recycle opensourceprojects
2006 recycle opensourceprojects
George Ang
?
Recycle Open Source Projects
Recycle Open Source ProjectsRecycle Open Source Projects
Recycle Open Source Projects
George Ang
?
笔测谤补尘颈诲框架介绍
笔测谤补尘颈诲框架介绍笔测谤补尘颈诲框架介绍
笔测谤补尘颈诲框架介绍
panjunyong
?

Groovy for Java Programmer