你不容錯過的12個Java項目

GitHub可謂是一座程序開發的大寶庫,有些素材值得fork,有些則能幫助咱們改進自有代碼或者學習編程技能。所以在開發工做當中咱們幾乎不可能繞得開GitHub。
下面,本文將同你們分享一些有趣且頗爲實用的Java庫。java

1.極致精簡的Java算法

Bootique是一項用於構建無容器可運行Java應用的極簡技術。該項目容許你們建立REST服務、Web應用、任務、數據庫遷移等等,且一切都立足於模塊實現。另外,你們也能夠將其做爲簡單的命令進行使用。數據庫

該項目的目標在於將應用從Java容器中解放出來,容許開發者從新迴歸main()方法。另外其中還包含部份內置命令,所以就算須要處理的代碼量很少或者並未嚮應用中導入任何模塊,仍然可以利用Bootique對其加以執行。編程

2.監控Java數組

不管你們使用哪一種監控工具,Automon都可以將其與AOP(AspectJ)相結合以實現Java代碼、JDK以及依賴庫監控聲明。其可與其它各知名監控工具相協做,例如JAMon、JavaSimon、Yammer Metrics以及StatsD等,同時亦支持各種日誌記錄庫,包括perf4j、log4j、sl4j等等。服務器

3.數據瀏覽網絡

若是你但願經過酷炫的方式進行數據交互,那麼Dex絕對不容錯過。它可以幫助咱們提取、轉換及可視化數據,同時附帶預測功能。你們能夠將可視化結果發佈爲3D或者其它HTML變量形式。框架

Dex容許咱們生成超過50種不一樣的可視化模式,其中包括世界地圖、參與時間表、網絡使用狀況等。你們也能夠利用R與其運行實例相結合,從而構建起復雜的統計分析與預測分析體系。分佈式

4.鍵值存儲ide

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

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

5.檢查泄漏問題

LeakCanary是一套開源庫,旨在幫助咱們解決內存泄漏問題。你們能夠利用它在Java(與Android)中檢查內存泄漏。正如其GitHub頁面中所言,「千里之堤潰於蟻穴」。

在LeakCanary設置完成後,你們能夠利用其自動檢查泄漏並在發現問題時給出通知。

6.字符串操做

Strman-java庫是一套Java 8庫,專門用於處理字符串。因爲其可用於Maven,所以你們只須要面向選定的構建工具添加關聯性便可使用。

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

7.優雅的問題處理方式

99-problems,光看名字就能對其功能瞭解一二。很明顯,它的做用是幫助你們磨練邏輯編程中的具體技能。你們能夠選擇利用Java 八、Scala或者Haskell進行問題解決,並最終找到最實用的解決辦法。

若是你們喜好解題,其中還提供多種不一樣層級的難度供各位選擇。另外,若是你們將所有99道難題解決掉,則可進一步衝擊Java Deathmatch。若是你們被難住了,請點擊此處查看難題——但請注意,認真思考以後再參閱比較好哦。

8.負載調查工具

Gumshoe容許你們監控本身的應用性能統計指標。有了它,咱們能夠精確到具體代碼行並瞭解與堆棧調用及個別棧幀相關的統計數據,從而確切分析資源使用狀況(例如TCP、UDP、文件系統或處理器使用量)。

這套庫可以在統計數據生成時對其進行捕捉、過濾與可視化處理,從而更爲直觀地實現數據結論查閱。若是須要更爲具體地使用,你們還能夠在數據捕捉與/或可視化處理過程當中過濾棧幀,並在其運行中加以變動。

9.小小大數據

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

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

10.Java音樂

SoundSea容許你們搜索並下載歌曲。其內置有元數據與專輯信息,你們在查找特定歌曲時,SoundSea會在iTunes上查找相關元數據與專輯信息,並顯示相關結果。若是匹配的歌曲超過一首,你們可在其中找到本身須要的條目。

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

11.多維數組

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

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

12.最佳Java

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

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

相關文章
相關標籤/搜索