立足GitHub學編程:13個不容錯過的Java項目

今天我們將整理一大波干貨滿滿的Java示例代碼與能力展示素材铐料。

GitHub可謂一座程序開發(fā)的大寶庫东帅,有些素材值得fork抗俄,有些則能幫助我們改進自有代碼或者學習編程技能盏混。無論如何,開發(fā)工作當中我們幾乎不可能繞得開GitHub庞瘸。

下面捧弃,我們將一同分享各有趣且頗為實用的Java庫,大家請任取所需擦囊、不用客氣~

1违霞、極致精簡的Java

Bootique是一項用于構建無容器可運行Java應用的極簡技術。該項目允許大家創(chuàng)建REST服務瞬场、Web應用买鸽、任務、數(shù)據(jù)庫遷移等等贯被,且一切都立足于模塊實現(xiàn)眼五。另外,大家也可以將其作為簡單的命令進行使用彤灶。

該項目的目標在于將應用從Java容器中解放出來看幼,允許開發(fā)者重新回歸main()方法。另外其中還包含部分內置命令幌陕,因此就算各位需要處理的代碼量不多或者并未向應用中導入任何模塊诵姜,仍然能夠利用Bootique對其加以執(zhí)行。

2搏熄、優(yōu)雅的問題處理方式

99-problems棚唆,光看名字就能對其功能了解一二。很明顯心例,它的作用是幫助大家磨練邏輯編程中的具體技能宵凌。大家可以選擇利用Java 8、Scala或者Haskell進行問題解決契邀,并最終找到最精致的解決辦法摆寄。

如果大家喜愛解題,其中還提供多種不同層級的難度供各位選擇坯门。另外微饥,如果大家將全部99道難題解決掉,則可進一步?jīng)_擊Java Deathmatch古戴。如果大家被難住了欠橘,請點擊此處查看難題——但請注意,認真思考之后再參閱比較好哦现恼。

3肃续、字符串操作

Strman-java庫是一套Java 8庫黍檩,專門用于處理字符串。由于其可用于Maven始锚,因此大家只需要面向選定的構建工具添加關聯(lián)性即可使用刽酱。

如果大家使用過Kik并聽說過其遭遇的leftPad問題,那么Strman可能是個更好的選擇——其能夠返回特定長度的新字符串瞧捌,且自動填充開頭部分內容棵里。另外,其中還提供一整套功能列表姐呐,包括向值附加字符串殿怜、從特定目錄中提取字符以及利用字符串在開始與結束間返回數(shù)組等等。

4曙砂、數(shù)據(jù)瀏覽

如果大家希望通過酷炫的方式進行數(shù)據(jù)交互头谜,那么Dex絕對不容錯過。它能夠幫助我們提取鸠澈、轉換及可視化數(shù)據(jù)柱告,同時附帶預測功能。大家可以將可視化結果發(fā)布為3D或者其它HTML變量形式款侵。

Dex允許我們生成超過50種不同的可視化模式末荐,其中包括世界地圖、參與時間表新锈、網(wǎng)絡使用情況等。大家也可以利用R與其運行實例相結合眶熬,從而構建起復雜的統(tǒng)計分析與預測分析體系妹笆。

Paste_Image.png

民主黨與共和黨誰能勝出?利用弦狀圖看個究竟娜氏。

5拳缠、小小大數(shù)據(jù)

Tablesaw是一套內存內數(shù)據(jù)表,其中包含多種數(shù)據(jù)工具與面向列的存儲格式贸弥。其設計思路認為沒人會面向小型任務執(zhí)行分布式分析窟坐,而大家可以在單一服務器上對200萬行級別的表進行交互。

大家能夠利用Tablesaw執(zhí)行各種規(guī)則绵疲,從而檢查顯示布局哲鸳、數(shù)據(jù)優(yōu)先級或者針對數(shù)據(jù)顯示及交互向特定用戶提供擴展控制范圍。在它的幫助下盔憨,我們可以利用RDBMS與CSV文件導入數(shù)據(jù)徙菠,添加及刪除列,執(zhí)行映射與規(guī)約操作或者將表保存在經(jīng)過壓縮的列式存儲格式當中郁岩。

6婿奔、鍵值存儲

Chronicle Map是一套內存內鍵值存儲方案缺狠,其設計目標在于實現(xiàn)低延遲與/或多進程應用,例如貿易與金融市場應用萍摊。這套庫主要面向中等讀取與寫入查詢延遲場景挤茄,允許用戶根據(jù)服務器中的硬件執(zhí)行線程數(shù)量編寫合適的查詢機制。

其主要用途包括在單一服務器(例如Redis)中替代低速鍵值存儲方案冰木,或者取代同類面向JVM的解決方案以實現(xiàn)速度提升驮樊。大家也可以將部分應用狀態(tài)移出Java堆,從而降低堆體積及GC壓力片酝。

7囚衔、負載調查工具

Gumshoe允許大家監(jiān)控自己的應用性能統(tǒng)計指標。有了它雕沿,我們可以精確到具體代碼行并了解與堆棧調用及個別棧幀相關的統(tǒng)計數(shù)據(jù)练湿,從而確切分析資源使用情況(例如TCP、UDP审轮、文件系統(tǒng)或處理器使用量)肥哎。

這套庫能夠在統(tǒng)計數(shù)據(jù)生成時對其進行捕捉、過濾與可視化處理疾渣,從而更為直觀地實現(xiàn)數(shù)據(jù)結論查閱篡诽。如果需要更為具體地使用,大家還可以在數(shù)據(jù)捕捉與/或可視化處理過程中過濾棧幀榴捡,并在其運行中加以變更杈女。

8、Java音樂

SoundSea允許大家搜索并下載歌曲吊圾。其內置有元數(shù)據(jù)與專輯信息达椰,大家在查找特定歌曲時,SoundSea會在iTunes上查找相關元數(shù)據(jù)與專輯信息项乒,并顯示相關結果啰劲。如果匹配的歌曲超過一首,大家可在其中找到自己需要的條目檀何。

歌曲本身下載自Pleer.com蝇裤,大家還可以根據(jù)高品質、低品質或者VBR碼率進行過濾频鉴。這同時也是一款迷你播放器栓辜,供我們直接聆聽歌曲而不再經(jīng)由其它音樂庫。


搜索與下載

9砚殿、檢查泄漏問題

LeakCanary是一套開源庫啃憎,旨在幫助我們解決內存泄漏問題。大家可以利用它在Java(與Android)中檢查內存泄漏似炎。正如其GitHub頁面中所言辛萍,“千里之埋潰于蟻穴”悯姊。

在LeakCanary設置完成后,大家可以利用其自動檢查泄漏并在發(fā)現(xiàn)問題時給出通知贩毕。

10悯许、多維數(shù)組

ND4J是一套開源庫,能夠將多種來自Python社區(qū)的科學計算工具引入JVM辉阶。其面向生產環(huán)境設計先壕,因此運行速度很快但對內存容量卻要求不高。在它的幫助下谆甜,工程師們能夠輕松將算法及接口移植到Java與Scala庫當中垃僚。

這套庫的主要貢獻是提供一套通用型n維數(shù)組對象,其多平臺功能包括GPU與線性代數(shù)外加信號處理能力规辱。其與Hadoop及Spark相集成谆棺,且提供API以模擬Numpy——一款高人氣Python數(shù)學庫。

11罕袋、監(jiān)控Java

無論大家使用哪種監(jiān)控工具改淑,Automon都能夠將其與AOP(AspectJ)相結合以實現(xiàn)Java代碼、JDK以及依賴庫監(jiān)控聲明浴讯。其可與其它各知名監(jiān)控工具相協(xié)作朵夏,例如JAMon、JavaSimon榆纽、Yammer Metrics以及StatsD等仰猖,同時亦支持各類日志記錄庫,包括perf4j掠河、log4j亮元、sl4j等等。

另一款出色的生產型監(jiān)控工具為Takipi唠摹。它能夠幫助大家了解自己的代碼何時及為何發(fā)生崩潰,查看全部意外狀況并獲取與之相關的全部堆棧奉瘤、源與狀態(tài)信息勾拉。

12、打理Java

Jvm-tools盗温,或者SJK藕赞,是一套用于JVM故障排查、監(jiān)控與配置的工具組合卖局。這是一款不像話地工具斧蜕,使用JVM的標準診斷接口(例如JMX、JVM attach與perf計數(shù)器)砚偶,同時添加了更多邏輯以應對各類常見故障排查用例批销。

這套庫允許我們對目標JVM的CPU線程使用情況進行池化洒闸,同時定期向控制臺報告實時CG信息并提供基礎樣本分析功能。在這里均芽,我們可以通過命令行配合MBean執(zhí)行各基本操作丘逸,同時將目標Java進程的全部MBeans轉儲為JSON格式。

13掀宋、最佳Java

awesome-java是一套出色的Java框架深纲、庫與軟件合集。如果大家不太清楚自己應當如何選擇具體方案劲妙,請務必參考這套清單 湃鹊,其中甚至根據(jù)類別對各條目加以劃分。

其中還包含一部分仍在使用的古老工具镣奋,包括能夠簡化映射的框架币呵,可構建應用周期與依賴性的工具以及負責處理字節(jié)碼編程的庫等等。

總結陳詞

這當然只是GitHub的冰山一角唆途,毫無疑問還有更多項目值得大家審視并用于改善自身代碼工程富雅。也歡迎大家結合自己的經(jīng)驗在評論中提供更多推薦!

原文鏈接:https://dzone.com/articles/the-hitchhikers-guide-to-github-13-java-projects-y
本文來源:http://developer.51cto.com/art/201607/514785.htm
譯者:核子可樂

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末肛搬,一起剝皮案震驚了整個濱河市没佑,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌温赔,老刑警劉巖蛤奢,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異陶贼,居然都是意外死亡啤贩,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門拜秧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來痹屹,“玉大人,你說我怎么就攤上這事枉氮≈狙埽” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵聊替,是天一觀的道長楼肪。 經(jīng)常有香客問我,道長惹悄,這世上最難降的妖魔是什么春叫? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上暂殖,老公的妹妹穿的比我還像新娘价匠。我一直安慰自己,他們只是感情好央星,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布霞怀。 她就那樣靜靜地躺著,像睡著了一般莉给。 火紅的嫁衣襯著肌膚如雪毙石。 梳的紋絲不亂的頭發(fā)上败徊,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天叠艳,我揣著相機與錄音,去河邊找鬼窥淆。 笑死叁幢,一個胖子當著我的面吹牛滤灯,可吹牛的內容都是我干的。 我是一名探鬼主播曼玩,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼鳞骤,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了黍判?” 一聲冷哼從身側響起豫尽,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎顷帖,沒想到半個月后美旧,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡贬墩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年榴嗅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片陶舞。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡嗽测,死狀恐怖,靈堂內的尸體忽然破棺而出肿孵,到底是詐尸還是另有隱情论咏,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布颁井,位于F島的核電站,受9級特大地震影響蠢护,放射性物質發(fā)生泄漏雅宾。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一葵硕、第九天 我趴在偏房一處隱蔽的房頂上張望眉抬。 院中可真熱鬧贯吓,春花似錦、人聲如沸蜀变。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽库北。三九已至爬舰,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間寒瓦,已是汗流浹背情屹。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杂腰,地道東北人垃你。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像喂很,于是被迫代替她去往敵國和親惜颇。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內容