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的冰山一角,毫無疑問還有更多專案值得大家審視並用於改善自身程式碼工程。也歡迎大家結合自己的經驗在評論中提供更多推薦!
相關文章
- 不容錯過的30頁超讚專案管理PPT專案管理
- 非常有效的專案時間管理方法,不容錯過
- 5個不容錯過的高效開發工具
- 五個不容錯過的安全開發工具
- Android 13 Beta 版釋出,諸多亮點不容錯過Android
- 2018 年不容錯過的 Django 全棧專案 YaDjangoBlogDjango全棧
- 阿里架構師推薦:這十個開源專案,Android開發不容錯過!阿里架構Android
- 不容錯過的 5 個微型 Linux 發行版Linux
- Web開發者不容錯過的10個HTML5工具WebHTML
- python小專案案例-開發Python專案案例,這8個庫不容錯過,功能強大效能優質Python
- Java 程式設計師不容錯過的開發趨勢Java程式設計師
- 寫好一個專案不容易
- App開發者不容錯過的大盤點APP
- Java老手該當心的13個錯誤Java
- 如何讓你的演示影片更專業?這些軟體不容錯過!
- 選擇智慧電視幾個靠譜方法不容錯過
- 找工作的你不容錯過的45個PHP面試題附答案(下篇)PHP面試題
- 開發者不容錯過的12款開源JavaScript庫JavaScript
- 不容錯過的jQuery圖片動畫及原始碼jQuery動畫原始碼
- Web開發者不容錯過的20段CSS程式碼WebCSS
- IT學術交流盛會,你不容錯過!
- 這十款冷門app不容錯過!APP
- 關於一個java專案呼叫另一個java專案的心得Java
- 5 位京東專家深度解讀,這場開源之旅不容錯過!
- 前端不容錯過的jQuery圖片滑塊外掛前端jQuery
- EVE瓦爾基里 不容錯過的Oculus Rift遊戲遊戲
- Windows Azure 免費線上講座,不容錯過Windows
- 13個使用WebAssembly的熱門語言專案 - infoworldWeb
- Java的13個規範Java
- 2021年了,Python開發者不容錯過的7個VS Code擴充套件Python套件
- 不容錯過這十款 GNOME Shell 擴充套件套件
- 【JavaEE】Java的13個規範Java
- 執行緒池中你不容錯過的一些細節執行緒
- 那些年不容錯過的智慧下拉重新整理載入框架框架
- 不容錯過!開發者必備的十二大開發資源
- 如果你擁有OculusRift,這些VR遊戲不容錯過!VR遊戲
- 7個改變世界的Java專案Java
- 2020 有哪些不容錯過的前端技術趨勢?前端