Groovy的春天从Java7诞生那日开始
想必關(guān)注Java的朋友不會(huì)沒有聽說過Groovy吧?的確,由于Groovy的語法與Java極其相近,所以對(duì)于我們這群Java狂熱分子特別友好。 Groovy對(duì)于有Java基礎(chǔ)的朋友來說,幾乎可以說是唾手可得!要花點(diǎn)時(shí)間的是Groovy所提供的獨(dú)有特性,當(dāng)然不學(xué)這些特性照樣可以用 Groovy進(jìn)行編程,但缺了Groovy的那個(gè)味。就比如我們學(xué)英語,的確能說能寫,但有些用法都很不地道,這是同樣的道理。
現(xiàn)在Groovy已經(jīng)發(fā)布了1.0正式版,網(wǎng)上還有《Groovy in Action》電子書下載,學(xué)習(xí)Groovy變的越來越方便了,不用因?yàn)槿狈Y料,編譯器報(bào)錯(cuò)不準(zhǔn)而導(dǎo)致學(xué)習(xí)進(jìn)度緩慢。而現(xiàn)在Groovy的項(xiàng)目之所以還比較少,其最主要的原因是Groovy的運(yùn)行效率比較低,Groovy在2007年1月初才發(fā)布1.0正式版。
至于Groovy的運(yùn)行效率低,目前還沒有什么好的解決方法,這主要跟bytecode有關(guān)。但令人興奮的是,這些用Java實(shí)現(xiàn)動(dòng)態(tài)語言的限制將在Java7誕生那天被解除,因?yàn)镾un已經(jīng)在研究一種新的專門用于動(dòng)態(tài)語言被命名為invokedynamic的bytecode,這將大大提高動(dòng)態(tài)語言比如Groovy在JVM上的運(yùn)行效率,直逼Java。相關(guān)信息可參見Dynamic Language Support on the JVM (http://www.artima.com/lejava/articles/dynamic_languages.html?)
最后給一個(gè)較常碰到的編程問題:請(qǐng)打印所給文本文件(EachLine.groovy),并在行首標(biāo)出行號(hào)。
EachLine.groovy源碼:
| def num = 0 new File("EachLine.groovy").eachLine { line -> num++ println "$num: $line" } |
運(yùn)行結(jié)果:
E:\Temp>groovy EachLine.groovy
1: def num = 0
2: new File("EachLine.groovy").eachLine { line ->
3:????? num++
4:????? println "$num: $line"
5: }
附:
Groovy官方網(wǎng)址:? http://groovy.codehaus.org
總結(jié)
以上是生活随笔為你收集整理的Groovy的春天从Java7诞生那日开始的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Eclipse集成Groovy插件
- 下一篇: Java9新功能之HTTP2和REPL