細數GitHub上既有趣又有用的Java項目Top14
在 GitHub 上有很多項目,能夠幫我們優化手頭的編程項目,或學習更多編程知識。下面我們分享 GitHub 上 14 個既有趣又有用的 Java 項目。
Bootique——讓 Java 應用開發更簡單
Bootique 是一個面向創建無容器、可運行 Java 應用的項目,能讓你基于模塊創建 REST 服務、 web 應用、DB 遷移任務等等。這樣,你就能像運行簡單命令一樣運行它們。
該項目的目的就是將應用從 Java 容器中解放出來,讓開發者回收它們的 main() 方法。此外項目還有一些內置命令,所以如果你代碼不足,或者沒有向應用中導入任何模塊,仍然能使用 Bootique 來執行它們。
項目地址:https://github.com/bootique/bootique
99-problems——優雅地解決問題
項目的名字叫 99-problems,你應該也猜到了,它是一系列 Java 問題的合集,旨在幫你練習邏輯編程技能。你可以選擇用 Java 8,Scala 或 Haskell 解決這些問題,而且你的最終目標就是找到解決這些問題的***雅方法。
項目所含的問題也分為不同的難度,問題的解答時間從 15 分鐘到幾個小時不等。如果比較喜歡這類做題挑戰,還可以試試“Java Deathmatch”(http://www.javadeathmatch.com/),像做游戲一樣完成Java挑戰,答案在這里:https://blog.takipi.com/4-out-of-5-java-developers-failed-to-solve-this-question/
項目地址:https://github.com/shekhargulati/99-problems
Strman-java——字符串操作
Strman-java 是一個 Java 庫,專門用于字符串。由于它在 Maven 上可用,所以你只需向你選擇的創建工具添加一個依賴即可。
另外,該項目還包含了一列函數,包括向值添加字符串,以特定索引獲取字符,返回字符串起始和結尾之間的數組等等。
項目地址:https://github.com/shekhargulati/strman-java
Dex——數據分析
如果你想以一種很酷的方式和自己的數據交互,那應該看看 Dex 這個項目。借助 Dex,你可以提取、轉換和可視化你的數據,也會獲得一些預測功能。
Dex 能讓你生成超過 50 種可視化模式,包括世界地圖、時間線等。可以將它和 R 的運行實例整合,接入統計分析和預測分析。
項目地址:https://github.com/PatMartin/Dex
Tablesaw——讓大數據輕量化
Tablesaw 是一個內存數據表,包括數據工具和面向列的存儲格式。其設計理念就是很小的任務不需要分布式分析,我們可以在單個服務器上處理多達 2 百萬行的圖表。
你可以用 Tablesaw 來應用一些規則,以確定顯示布局、數據優先度或添加一系列的擴展程序,讓用戶控制數據展示和交互。用 Tablesaw 可以從 RDBMS 和 CSV 文件中導入數據,添加和移除列,或以壓縮的列存儲格式來存儲表格。
項目地址:https://github.com/lwhite1/tablesaw
Chronicle Map —— key value 存儲
Chronicle Map 是一個內存 key-value 存儲,面向低延遲或多進程應用設計,比如交易和金融市場應用。該項目面向中等延遲的讀寫查詢,能讓你編寫的查詢很好地擴展至服務器上硬件執行線程的數量。
其主要用途是替換用在單個服務器(比如 Redis)上的速度緩慢的 key-value 存儲,或替換相似的 JVM 解決方法用以加快它們的速度。還能將你的部分應用狀態移出 Java 堆內存,降低堆大小和 GC 壓力。
項目地址:https://github.com/OpenHFT/Chronicle-Map
Gumshoe——應用數據統計
Gumshoe 能讓你監控你的應用性能統計數據。有了它,我們可以精確地找到代碼行,獲取調用棧和單獨棧幀相關的統計信息。這意味著你能夠分析資源使用狀況(TCP,UDP等)。
使用 Gumshoe 還可以篩選和可視化它所生成的統計數據。
項目地址:https://github.com/dcm-oss/gumshoe
SoundSea——Java 音樂
SoundSea 能讓你通過其內置元數據和專輯封面來搜索及下載歌曲。在你搜索某首歌曲時, SoundSea 會在 iTunes 上尋找相關元數據和專輯封面,并展示給你。
歌曲本身是從 Pleer.com 上下載的,可以按照高、低或 VBR 比特率進行篩選。SoundSea 還能充當一個迷你播放器,可以直接聽歌。
項目地址:https://github.com/sacert/SoundSea
LeakCanary —— 檢測內存泄露
LeakCanary 是一個開源庫,用來幫我們阻止內存泄露。可以用它在調試版中檢測 Java 中的內存泄露。
設置好 LeakCanary 后,可以對其配置,當出現內存泄露時就會自動通知你。
項目地址:https://github.com/square/leakcanary
ND4J——多維數組
ND4J 是一個開源庫,將 Python 中直觀的科學計算工具帶入 Java 虛擬機中。由于面向生產環境,所以它運行很快,且只需很小的 RAM。有了它,你就能很容易的將算法和接口植入其它 Java庫中。
ND4J 的主要功能就是提供通用的 n 維數組對象、包括 GPU 在內的多平臺功能、線性代數和信號處理函數。
項目地址:https://github.com/deeplearning4j/nd4j
Automon —— Java監控工具
Automon 結合了 AOP 的強大功能,能夠以聲明的方式監控你的 Java 代碼、JDK 和依賴庫。
可以用 Automon 追蹤方法調用時間、異常次數、存儲和展示你所選工具內的數據。
項目地址:https://github.com/stevensouza/automon
Jvm-tools——幫你照顧好你的Java
Jvm-tools 或 SJK,是一組工具,用于 Java 虛擬機排錯、監控和性能分析。它算是一款命令行工具,充分利用 Java 虛擬機的標準檢測接口,在此基礎上又補充了一些邏輯,更加適合常用排錯操作。
項目地址:https://github.com/aragozin/jvm-tools
Awsome-java:Java框架、工具合集
Awesome-java 集合了一系列功能優異的 Java 框架、庫和軟件,并且按需分類,方便你查找。
項目地址:https://github.com/akullpp/awesome-java
Java-design-pattern——設計模式
該項目為使用 Java 實現的設計模式。
設計模式能讓開發人員用來驗證設計應用和系統過程中的常見問題,它能提供經過測試和驗證的開發范式,從而大大加快開發進度。
重新利用設計模式可以幫你防止出現一些導致重大故障的小問題,也能為開發者優化代碼可讀性。
項目地址:https://github.com/iluwatar/java-design-patterns