Can you summarize the following document?
        
  大部分有效的Java檔案也是有效的Groovy檔案。Groovy程式碼可以比Java程式碼更加緊湊,因為它不需要Java需要的所有元素。這兩種語言的相似性,讓Java程式設計師可以先從熟悉的Java語法開始逐步學習Groovy。 Groovy特性包括了Java中不支援的靜態和動態型別(使用關鍵字 def),運算子過載,提供了lists(列表)和關聯陣列(maps)提供了原生語法,原生支援正規表示式,多型迭代,字串內嵌表示式,新增幫助方法以及Null條件運算子,自動空指標檢查(列:codice_1,或 codice_2)。  從Groovy 2開始,支援模組化(能只根據專案需要新增所需的jar包,從而減少Groovy庫的大小),使用JDK7的型別檢查,靜態編譯,Project Coin語法增強,多塊模組和持續的效能增強 呼叫動態指令。  Groovy透過內聯文件物件模型(DOM)語法對各種標記語言(如XML和HTML)的提供原生支援。該功能實現了使用統一簡潔的語法和程式設計方法來定義和操縱許多型別的異構資料資源。  與Java不同的是,Groovy原始碼檔案可以當作(未編譯的)指令碼執行,如果它含有任何類定義之外的程式碼,或者它是具有main方法的類,或者它是Runnable或GroovyTestCase。 Groovy指令碼在執行之前完成解析,編譯和生成(類似於Perl和Ruby)。這發生在下一個層次,編譯後的版本不會儲存為程序的元件

  下面是來自於 https://web.archive.org/web/20140302111159/http://groovy.codehaus.org/ 的一個示例程式:

  已經有許多的整合開發環境支援了該門語言:
Apache的Groovy是Java平臺上設計的物件導向程式語言。這門動態語言擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺的指令碼語言使用,Groovy程式碼動態地編譯成執行於Java虛擬機器(JVM)上的Java位元組碼,並與其他Java程式碼和庫進行互操作。由於其執行在JVM上的特性,Groovy可以使用其他Java語言編寫的庫。Groovy的語法與Java非常相似,大多數Java程式碼也符合Groovy的語法規則,儘管可能語義不同。 Groovy 1.0於2007年1月2日釋出,並於2012年7月釋出了Groovy 2.0。從版本2開始,Groovy也可以靜態編譯,提供型別推論和Java相近的效能。Groovy 2.4是Pivotal軟體贊助的最後一個主要版本,截止於2015年3月。Groovy已經將其治理結構更改為Apache軟體基金會的專案管理委員會(PMC)。