2017年13個不容錯過的Java項目

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

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

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

1.極致精簡的Java

Bootique是一項用于構建無容器可運行Java應用的極簡技術。該項目允許大家創建REST服務、Web應用、任務、數據庫遷移等等,且一切都立足于??槭迪?。另外,大家也可以將其作為簡單的命令進行使用。

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

2.優雅的問題處理方式

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

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

3.字符串操作

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

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

4.數據瀏覽

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

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

5.小小大數據

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

大家能夠利用Tablesaw執行各種規則,從而檢查顯示布局、數據優先級或者針對數據顯示及交互向特定用戶提供擴展控制范圍。在它的幫助下,我們可以利用RDBMS與CSV文件導入數據,添加及刪除列,執行映射與規約操作或者將表保存在經過壓縮的列式存儲格式當中。

6.鍵值存儲

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

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

7.負載調查工具

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

這套庫能夠在統計數據生成時對其進行捕捉、過濾與可視化處理,從而更為直觀地實現數據結論查閱。如果需要更為具體地使用,大家還可以在數據捕捉與/或可視化處理過程中過濾棧幀,并在其運行中加以變更。

8.Java音樂

SoundSea允許大家搜索并下載歌曲。其內置有元數據與專輯信息,大家在查找特定歌曲時,SoundSea會在iTunes上查找相關元數據與專輯信息,并顯示相關結果。如果匹配的歌曲超過一首,大家可在其中找到自己需要的條目。

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

搜索與下載

9.檢查泄漏問題

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

在LeakCanary設置完成后,大家可以利用其自動檢查泄漏并在發現問題時給出通知。

10.多維數組

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

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

11.監控Java

無論大家使用哪種監控工具,Automon都能夠將其與AOP(AspectJ)相結合以實現Java代碼、JDK以及依賴庫監控聲明。其可與其它各知名監控工具相協作,例如JAMon、JavaSimon、Yammer Metrics以及StatsD等,同時亦支持各類日志記錄庫,包括perf4j、log4j、sl4j等等。

另一款出色的生產型監控工具為Takipi。它能夠幫助大家了解自己的代碼何時及為何發生崩潰,查看全部意外狀況并獲取與之相關的全部堆棧、源與狀態信息。

12.打理Java

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

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

13.最佳Java

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

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

總結陳詞

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

來源:51cto

上一篇: Java 專業人士必備的書籍和網站列表

下一篇: 說說java程序員的工作、學習與績效

分享到: 更多
时时彩挂机稳赚方案 七乐彩拖胆价格表 六肖赔多少 球探比分网 重庆时时计划5码一期 上海时时最快开奖结果 时时彩龙虎怎么对打 欢乐生肖彩票走势图 大富贵斗牛挂 牌九游戏下载 北京pk10全天稳定计划 pk10玩法规则 重庆时时龙虎合技巧 pk10三码必中计划 pk10买6码怎么买才稳赚 今晚免费直码七星彩