国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Groovy初體驗:構(gòu)建高性能JVM應(yīng)用

geekidentity / 2412人閱讀

摘要:我們可以利用的所有動態(tài)功能構(gòu)建高性能的應(yīng)用將開發(fā)效率提高幾個數(shù)量級這就是我們?yōu)槭裁匆獙W它注本文首發(fā)于公眾號,可長按或掃描下面的小心心來訂閱環(huán)境部署本文實驗所用為,這里介紹使用工具來安裝的方法。

為什么要學Groovy

Groovy運行于JVM之上,然而其對動態(tài)語言函數(shù)式編程范式以及元編程功能的加持所帶來的表現(xiàn)力和簡潔性可以說甩了Java幾條街。我們可以利用Groovy的所有動態(tài)功能構(gòu)建高性能的JVM應(yīng)用、將開發(fā)效率提高幾個數(shù)量級! 這就是我們?yōu)槭裁匆獙W它!

注: 本文首發(fā)于 My 公眾號 CodeSheep ,可 長按掃描 下面的 小心心 來訂閱 ↓ ↓ ↓

Groovy環(huán)境部署

本文實驗所用OS為CentOS7,這里介紹使用sdk工具來安裝Groovy的方法。

首先在命令行下執(zhí)行:

curl -s get.sdkman.io | bash

接下來執(zhí)行:

source "$HOME/.sdkman/bin/sdkman-init.sh"

然后我們就可以使用sdk工具來安裝Groovy:

一句話搞定!

sdk install groovy

完成之后我們來檢查Groovy安裝狀態(tài)

groovy -v

一切就緒

Hello World From Groovy
[root@localhost ~]# vim Hello.groovy
[root@localhost ~]# more Hello.groovy 
println "Hello World From Groovy !"
[root@localhost ~]# groovy Hello
Hello World From Groovy !
Groovy語言特性

Groovy是輕量級的Java

Groovy的信噪比比Java高:較少的代碼獲得更多結(jié)果

GDK = Groovy JDK:通過向JDK的各種類中添加便捷方法,Groovy擴展了JDK形成了GDK庫

return語句可選,分號結(jié)尾可選

方法和類默認public

導(dǎo)航操作符可幫助實現(xiàn)對象引用不為空時方法才會被調(diào)用

Groovy不強迫捕獲自己不關(guān)心的異常,沒捕獲的異常自動傳到高層

靜態(tài)方法內(nèi)可使用this來引用Class對象,因此可以鏈式調(diào)用!

兩大優(yōu)點:表現(xiàn)力 + 簡潔!!!

從Java到Groovy

用Java寫一段代碼如下:

public class Greetingss {

  public static void main( String[] args ) {
    for( int i=0; i<3; i++ ) {
      System.out.println("ho ");
    }
    System.out.println("Merry Groovy");
  }
}

用Groovy重構(gòu)一遍如下:

for(i in 0..2) {
  print "ho "
}
print "Merry Groovy"

看看兩種語言的信噪比對比,真是給人不可估量的感動!

安全導(dǎo)航操作符 ?.

可以避免代碼中的大量null引用的判斷

def foo( str ) {
  str?.reverse()  // 僅當str不為null時reverse才會執(zhí)行
}

這可以幫我們省多少個if啊!!!

異常處理

與Java相比,Groovy的異常處理少了很多繁文縟節(jié)

對于那些不想處理或者不適合在代碼當前層次處理的異常,Groovy對用戶不做任何要求,任何用戶未處理的異常會自動傳遞到高一層,我們啥也不用寫:

def openfile( fileName ) {  // 無需throws
  new FileInputStream( fileName ) // 無需try...catch... 處理
}

異常可以放到其調(diào)用代碼中處理:

try {
  openFile("nonexistfile")
} catch( FileNotFoundException ex ) {
  print "Oops: " + ex
}

若捕獲所有異常(Exception),則上面catch中異常的類型都可省略:

try {
  openFile("nonexistfile")
} catch( ex ) {  // 省略類型表示可捕獲所有異常
  print "Oops: " + ex
}
鏈式調(diào)用

靜態(tài)方法內(nèi)可使用this來引用Class對象,因此可以鏈式調(diào)用

class Wizard {
  def static learn( trick, action ) {
    //...
    this
  }
}

Wizard.learn("xxxx", {...})
  .learn("yyyy", {...})
  .learn("zzzz", {...})
后記

作者更多的原創(chuàng)文章在此,歡迎觀賞

My Personal Blog

作者更多的SpringBt實踐文章在此:

Spring Boot應(yīng)用監(jiān)控實戰(zhàn)

SpringBoot應(yīng)用部署于外置Tomcat容器

ElasticSearch搜索引擎在SpringBt中的實踐

初探Kotlin+SpringBoot聯(lián)合編程

Spring Boot日志框架實踐

SpringBoot優(yōu)雅編碼之:Lombok加持

如果有興趣,也可以抽點時間看看作者一些關(guān)于容器化、微服務(wù)化方面的文章:

利用K8S技術(shù)棧打造個人私有云 連載文章

從一份配置清單詳解Nginx服務(wù)器配置

Docker容器可視化監(jiān)控中心搭建

利用ELK搭建Docker容器化應(yīng)用日志中心

RPC框架實踐之:Apache Thrift

RPC框架實踐之:Google gRPC

微服務(wù)調(diào)用鏈追蹤中心搭建

Docker容器跨主機通信

Docker Swarm集群初探

高效編寫Dockerfile的幾條準則

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/68795.html

相關(guān)文章

  • 函數(shù)式編程思維在三行代碼情書中的應(yīng)用

    摘要:函數(shù)式編程概述如今主流的編程語言,函數(shù)式編程范式或多或少都融入其中成了標配,或者說主流語言都在進行函數(shù)式方面的擴充,這是一個大趨勢。 showImg(https://segmentfault.com/img/remote/1460000015089083); 函數(shù)式編程概述 如今主流的編程語言,函數(shù)式編程范式或多或少都融入其中成了標配,或者說主流語言都在進行函數(shù)式方面的擴充,這是一...

    DC_er 評論0 收藏0
  • Capsule:開源的 JVM 應(yīng)用部署工具

    摘要:如果期望應(yīng)用程序正常地運行,編碼和部署過程都是重中之重。但應(yīng)用程序?qū)Νh(huán)境的要求非常少只需一個和一個內(nèi)核,然而意想不到是,目前為止尚不存在一個通用的應(yīng)用部署工具機制。當下,經(jīng)過一年的發(fā)展,正式發(fā)布一個簡單健壯且靈活的應(yīng)用部署工具。 【編者按】本文作者 Ron Pressler 是 Parallel Universe 公司的創(chuàng)始人,擁有著豐富的高性能開發(fā)經(jīng)驗。通過這篇文章,Ron 向大家詳...

    yangrd 評論0 收藏0
  • 國外程序員整理的Java資源大全

    摘要:日期和時間處理日期和時間的函數(shù)庫。使用中可觀察序列,創(chuàng)建異步基于事件應(yīng)用程序的函數(shù)庫。為分布式系統(tǒng)提供延遲和容錯處理。發(fā)布使用本機格式分發(fā)應(yīng)用程序的工具。將程序資源和打包成和的本機文件。圖像處理用來幫助創(chuàng)建評估或操作圖形的函數(shù)庫。 好資源要分享原文 譯者 唐尤華 翻譯自 github akullpp 構(gòu)建 這里搜集了用來構(gòu)建應(yīng)用程序的工具。 Apache Maven:Mave...

    chengtao1633 評論0 收藏0
  • #yyds干貨盤點# Spring Boot的前世今生以及它和Spring Cloud的關(guān)系詳解。

    摘要:經(jīng)過年時間的發(fā)展,到目前為止,最新穩(wěn)定版為版本。的發(fā)展剛出生的時候,引起了很多開源社區(qū)的關(guān)注,并且也有個人和企業(yè)開始嘗試使用。通過項目搭建過程來對比的差異和優(yōu)勢。當然它的作用不僅于此,后續(xù)會逐步揭開它的真實面目。而和就相當于當年的和的關(guān)系。 要了解Spring Boot的發(fā)展背景,還得從2004年Spring ...

    番茄西紅柿 評論0 收藏2637
  • Java軟件架構(gòu)師需要掌握的開源工具

    摘要:軟件架構(gòu)師需要掌握的開源工具的是當前敏捷開發(fā)領(lǐng)域最重要的工具之一。主要用于持續(xù)自動地構(gòu)建測試軟件項目,如與。監(jiān)控一些定時執(zhí)行的任務(wù)。是應(yīng)用程序最好的軟件測試框架之一。是一種自由和開放源碼的類操作系統(tǒng) Java軟件架構(gòu)師需要掌握的開源工具1. JIRAAtlassian的JIRA是當前敏捷開發(fā)領(lǐng)域最重要的工具之一。它用于錯誤...

    genefy 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<