Groovy
什么是Groovy
??Groovy是用于Java虛擬機的一種敏捷的動態語言,它是一種成熟的面相對象的編程語言,既可以用于面相對象編程,又可以用作純粹的腳本語言。使用該種語言不必寫過多的代碼,同時又具有閉包和動態語言中的其它特性。
??Groovy是JVM的一個替代語言(替代是指可以用 Groovy 在Java平臺上進行 Java 編程),使用方式基本與使用 Java代碼的方式相同,該語言特別適合與Spring的動態語言支持一起使用,設計時充分考慮了Java集成,這使 Groovy 與 Java 代碼的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的結合編程。
Groovy與Java比較
特點
- Groovy完全兼容Java的語法
- 分號是可選的
- 類、方法默認是public的
- 編譯器給屬性自動添加Getter/Setter方法
- 屬性可以直接用點號獲取
- 最后一個表達式的值會被作為返回值
- Java中
==
比較的是兩個對象的內存地址是不是同一個對象,而在Groovy中==
等同于equals(),不會有NullPointerExceptions
示例代碼
public class Cat{
private String name
public Cat(String name){
this.name = name
}
}
Cat cat = new Cat('波斯貓')
println cat.name
Cat cat2 = null
println cat2 == cat
顯示結果
Groovy的高效特性
- assert語句
??在任何地方都可以進行斷言操作
??執行語句:
assert true
??執行結果:
??執行語句:
assert false
??執行結果:
- 可選類型定義
??類型是可選的,相當于一個弱類型的編程語言直接def
跟變量名即可,而變量的類型是根據后面的操作推導出來的
??示例語句:
def flag = true
def name = '張三'
- 可選的括號:
??調用方法后面如果有參數的話,其括號是可以不寫的
??執行語句:
def name = '張三'
println(name)
println name
??執行結果:
- 字符串
??字符串有三種表示形式:分別是單引號、雙引號、以及三個引號。
??執行語句
def s1 = 'World!'
def s2 = "Hello ${s1}"
def s3 = '''hell
world!'''
println s1
println s2
println s3
??執行結果:
??從上面我們可以看出,單引號中的內容可以直接顯示,雙引號中的內容可以傳參,三引號中的內容可以換行。
- 集合API
??List、Map在Groovy中有更簡單的寫法
??List集合
??執行語句
def list = ['張三','李四']
list << '王五'
assert list.size() == 3
assert list.getClass() == ArrayList
Iterator iterator = list.iterator()
while(iterator.hasNext()){
println iterator.next()
}
??執行結果
??Map集合
??執行語句
def map = [id : 1,name : '張三']
map.age = 20
Iterator iterator = map.keySet().iterator()
while (iterator.hasNext()){
println map[iterator.next()]
}
??執行結果
- 閉包(closurs)
??閉包在groovy中是一個處于代碼上下文中的開放的,匿名代碼塊。它可以訪問到其外部的變量或方法。
??執行語句
def c = { v -> println v}
def method(Closure closure){
closure('hello')
}
method(c)
??執行結果
參考來源:Groovy百度百科
智能推薦
Groovy_Learn_003_Groovy基本語法
Groovy基本語法 為了了解Groovy的基本語法,讓我們先看一個簡單的Hello World程序 在Groovy中導入語句import語句可以用來導入,可以在你的代碼可以使用其他庫的功能。這是通過使用在 Import 關鍵字完成。 下面的示例演示了如何使用MarkupBuilder的類,它可能是最常用的創建HTML或XML標記的類之一。 默認情況下,Groovy在代碼中包括以下庫,因此您不需要...
Groovy_Learn_002_Groovy環境
Groovy環境 有多種方式來獲得Groovy環境設置 下載安裝,獲得Windows安裝部分 ----- 安裝過程就不詳細的介紹了。 也可下載壓縮包 下載后,把壓縮包解壓到相應的位置,然后再環境變量的Path里面添加解壓后的路徑(到解壓的bin目錄下)。配置好后,然后運行groovy -v,可以看到如下圖 到這里,就安裝好了。 Hello Groovy Dos中運行groovyconsole之后,...
Linux下安裝groovy & Idea安裝groovy
1.下載groovy-2.5.3 下載鏈接:某盤鏈接 提取碼:q3ir 如果鏈接失效,請留言。 2.Linux安裝groovy 3.Idea安裝groovy 下載groovy-2.5.3.zip后,本地解壓縮,記住路徑,如:/Download/groovy-2.5.3 打開Idea,右鍵項目,選擇Project Structure -> Global Libraries -> 加號 -...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
猜你喜歡
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...
Linux C系統編程-線程互斥鎖(四)
互斥鎖 互斥鎖也是屬于線程之間處理同步互斥方式,有上鎖/解鎖兩種狀態。 互斥鎖函數接口 1)初始化互斥鎖 pthread_mutex_init() man 3 pthread_mutex_init (找不到的情況下首先 sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev) 動態初始化 int pthread_...
統計學習方法 - 樸素貝葉斯
引入問題:一機器在良好狀態生產合格產品幾率是 90%,在故障狀態生產合格產品幾率是 30%,機器良好的概率是 75%。若一日第一件產品是合格品,那么此日機器良好的概率是多少。 貝葉斯模型 生成模型與判別模型 判別模型,即要判斷這個東西到底是哪一類,也就是要求y,那就用給定的x去預測。 生成模型,是要生成一個模型,那就是誰根據什么生成了模型,誰就是類別y,根據的內容就是x 以上述例子,判斷一個生產出...