>
學(xué)校機(jī)構(gòu) >
哈爾濱今日靈圖 >
學(xué)習(xí)資訊>
13個(gè)不容錯(cuò)過(guò)的Java項(xiàng)目
13個(gè)不容錯(cuò)過(guò)的Java項(xiàng)目
112 2017-04-19
1極致精簡(jiǎn)的Java
Bootique是一項(xiàng)用于構(gòu)建無(wú)容器可運(yùn)行Java應(yīng)用的極簡(jiǎn)技術(shù)。該項(xiàng)目允許大家創(chuàng)建REST服務(wù)、Web應(yīng)用、任務(wù)、數(shù)據(jù)庫(kù)遷移等等,且一切都立足于模塊實(shí)現(xiàn)。另外,大家也可以將其作為簡(jiǎn)單的命令進(jìn)行使用。
該項(xiàng)目的目標(biāo)在于將應(yīng)用從Java容器中解放出來(lái),允許開(kāi)發(fā)者重新回歸main()方法。另外其中還包含部分內(nèi)置命令,因此就算各位需要處理的代碼量不多或者并未向應(yīng)用中導(dǎo)入任何模塊,仍然能夠利用Bootique對(duì)其加以執(zhí)行。
2優(yōu)雅的問(wèn)題處理方式
99-problems,光看名字就能對(duì)其功能了解一二。很明顯,它的作用是幫助大家磨練邏輯編程中的具體技能。大家可以選擇利用Java8、Scala或者Haskell進(jìn)行問(wèn)題解決,并最終找到最精致的解決辦法。
如果大家喜愛(ài)解題,其中還提供多種不同層級(jí)的難度供各位選擇。另外,如果大家將全部99道難題解決掉,則可進(jìn)一步?jīng)_擊JavaDeathmatch。如果大家被難住了,請(qǐng)點(diǎn)擊此處查看難題——但請(qǐng)注意,認(rèn)真思考之后再參閱比較好哦。
3字符串操作
Strman-java庫(kù)是一套Java8庫(kù),專門(mén)用于處理字符串。由于其可用于Maven,因此大家只需要面向選定的構(gòu)建工具添加關(guān)聯(lián)性即可使用。
如果大家使用過(guò)Kik并聽(tīng)說(shuō)過(guò)其遭遇的leftPad問(wèn)題,那么Strman可能是個(gè)更好的選擇——其能夠返回特定長(zhǎng)度的新字符串,且自動(dòng)填充開(kāi)頭部分內(nèi)容。另外,其中還提供一整套功能列表,包括向值附加字符串、從特定目錄中提取字符以及利用字符串在開(kāi)始與結(jié)束間返回?cái)?shù)組等等。
4數(shù)據(jù)瀏覽
如果大家希望通過(guò)酷炫的方式進(jìn)行數(shù)據(jù)交互,那么Dex絕對(duì)不容錯(cuò)過(guò)。它能夠幫助我們提娶轉(zhuǎn)換及可視化數(shù)據(jù),同時(shí)附帶預(yù)測(cè)功能。大家可以將可視化結(jié)果發(fā)布為3D或者其它HTML變量形式。
Dex允許我們生成超過(guò)50種不同的可視化模式,其中包括世界地圖、參與時(shí)間表、網(wǎng)絡(luò)使用情況等。大家也可以利用R與其運(yùn)行實(shí)例相結(jié)合,從而構(gòu)建起復(fù)雜的統(tǒng)計(jì)分析與預(yù)測(cè)分析體系。
5小小大數(shù)據(jù)
Tablesaw是一套內(nèi)存內(nèi)數(shù)據(jù)表,其中包含多種數(shù)據(jù)工具與面向列的存儲(chǔ)格式。其設(shè)計(jì)思路認(rèn)為沒(méi)人會(huì)面向小型任務(wù)執(zhí)行分布式分析,而大家可以在單一服務(wù)器上對(duì)200萬(wàn)行級(jí)別的表進(jìn)行交互。
大家能夠利用Tablesaw執(zhí)行各種規(guī)則,從而檢查顯示布局、數(shù)據(jù)優(yōu)先級(jí)或者針對(duì)數(shù)據(jù)顯示及交互向特定用戶提供擴(kuò)展控制范圍。在它的幫助下,我們可以利用RDBMS與CSV文件導(dǎo)入數(shù)據(jù),添加及刪除列,執(zhí)行映射與規(guī)約操作或者將表保存在經(jīng)過(guò)壓縮的列式存儲(chǔ)格式當(dāng)中。
6鍵值存儲(chǔ)
ChronicleMap是一套內(nèi)存內(nèi)鍵值存儲(chǔ)方案,其設(shè)計(jì)目標(biāo)在于實(shí)現(xiàn)低延遲與/或多進(jìn)程應(yīng)用,例如貿(mào)易與金融市場(chǎng)應(yīng)用。這套庫(kù)主要面向中等讀取與寫(xiě)入查詢延遲場(chǎng)景,允許用戶根據(jù)服務(wù)器中的硬件執(zhí)行線程數(shù)量編寫(xiě)合適的查詢機(jī)制。
其主要用途包括在單一服務(wù)器(例如Redis)中替代低速鍵值存儲(chǔ)方案,或者取代同類面向JVM的解決方案以實(shí)現(xiàn)速度提升。大家也可以將部分應(yīng)用狀態(tài)移出Java堆,從而降低堆體積及GC壓力。
7負(fù)載調(diào)查工具
Gumshoe允許大家監(jiān)控自己的應(yīng)用性能統(tǒng)計(jì)指標(biāo)。有了它,我們可以精確到具體代碼行并了解與堆棧調(diào)用及個(gè)別棧幀相關(guān)的統(tǒng)計(jì)數(shù)據(jù),從而確切分析資源使用情況(例如TCP、UDP、文件系統(tǒng)或處理器使用量)。
這套庫(kù)能夠在統(tǒng)計(jì)數(shù)據(jù)生成時(shí)對(duì)其進(jìn)行捕捉、過(guò)濾與可視化處理,從而更為直觀地實(shí)現(xiàn)數(shù)據(jù)結(jié)論查閱。如果需要更為具體地使用,大家還可以在數(shù)據(jù)捕捉與/或可視化處理過(guò)程中過(guò)濾棧幀,并在其運(yùn)行中加以變更。
8Java音樂(lè)
SoundSea允許大家搜索并下載歌曲。其內(nèi)置有元數(shù)據(jù)與專輯信息,大家在查找特定歌曲時(shí),SoundSea會(huì)在iTunes上查找相關(guān)元數(shù)據(jù)與專輯信息,并顯示相關(guān)結(jié)果。如果匹配的歌曲超過(guò)一首,大家可在其中找到自己需要的條目。
歌曲本身下載自Pleer,大家還可以根據(jù)高品質(zhì)、低品質(zhì)或者VBR碼率進(jìn)行過(guò)濾。這同時(shí)也是一款迷你播放器,供我們直接聆聽(tīng)歌曲而不再經(jīng)由其它音樂(lè)庫(kù)。
9檢查泄漏問(wèn)題
LeakCanary是一套開(kāi)源庫(kù),旨在幫助我們解決內(nèi)存泄漏問(wèn)題。大家可以利用它在Java(與Android)中檢查內(nèi)存泄漏。正如其GitHub頁(yè)面中所言,“千里之埋潰于蟻穴”。
在LeakCanary設(shè)置完成后,大家可以利用其自動(dòng)檢查泄漏并在發(fā)現(xiàn)問(wèn)題時(shí)給出通知。
10多維數(shù)組
ND4J是一套開(kāi)源庫(kù),能夠?qū)⒍喾N來(lái)自Python社區(qū)的科學(xué)計(jì)算工具引入JVM。其面向生產(chǎn)環(huán)境設(shè)計(jì),因此運(yùn)行速度很快但對(duì)內(nèi)存容量卻要求不高。在它的幫助下,工程師們能夠輕松將算法及接口移植到Java與Scala庫(kù)當(dāng)中。
這套庫(kù)的主要貢獻(xiàn)是提供一套通用型n維數(shù)組對(duì)象,其多平臺(tái)功能包括GPU與線性代數(shù)外加信號(hào)處理能力。其與Hadoop及Spark相集成,且提供API以模擬Numpy——一款高人氣Python數(shù)學(xué)庫(kù)。
11監(jiān)控Java
無(wú)論大家使用哪種監(jiān)控工具,Automon都能夠?qū)⑵渑cAOP(AspectJ)相結(jié)合以實(shí)現(xiàn)Java代碼、JDK以及依賴庫(kù)監(jiān)控聲明。其可與其它各知名監(jiān)控工具相協(xié)作,例如JAMon、JavaSimon、YammerMetrics以及StatsD等,同時(shí)亦支持各類日志記錄庫(kù),包括perf4j、log4j、sl4j等等。
另一款出色的生產(chǎn)型監(jiān)控工具為T(mén)akipi。它能夠幫助大家了解自己的代碼何時(shí)及為何發(fā)生崩潰,查看全部意外狀況并獲取與之相關(guān)的全部堆棧、源與狀態(tài)信息。
12打理Java
Jvm-tools,或者SJK,是一套用于JVM故障排查、監(jiān)控與配置的工具組合。這是一款不像話地工具,使用JVM的標(biāo)準(zhǔn)診斷接口(例如JMX、JVMattach與perf計(jì)數(shù)器),同時(shí)添加了更多邏輯以應(yīng)對(duì)各類常見(jiàn)故障排查用例。
這套庫(kù)允許我們對(duì)目標(biāo)JVM的CPU線程使用情況進(jìn)行池化,同時(shí)定期向控制臺(tái)報(bào)告實(shí)時(shí)CG信息并提供基礎(chǔ)樣本分析功能。在這里,我們可以通過(guò)命令行配合MBean執(zhí)行各基本操作,同時(shí)將目標(biāo)Java進(jìn)程的全部MBeans轉(zhuǎn)儲(chǔ)為JSON格式。
13最佳Java
awesome-java是一套出色的Java框架、庫(kù)與軟件合集。如果大家不太清楚自己應(yīng)當(dāng)如何選擇具體方案,請(qǐng)務(wù)必參考這套清單,其中甚至根據(jù)類別對(duì)各條目加以劃分。
其中還包含一部分仍在使用的古老工具,包括能夠簡(jiǎn)化映射的框架,可構(gòu)建應(yīng)用周期與依賴性的工具以及負(fù)責(zé)處理字節(jié)碼編程的庫(kù)等等。
總結(jié)陳詞
這當(dāng)然只是GitHub的冰山一角,毫無(wú)疑問(wèn)還有更多項(xiàng)目值得大家審視并用于改善自身代碼工程。也歡迎大家結(jié)合自己的經(jīng)驗(yàn)在評(píng)論中提供更多推薦!
請(qǐng)聯(lián)系網(wǎng)站客服,了解詳細(xì)的優(yōu)惠課程信息~
優(yōu)質(zhì)、權(quán)威、便捷、省心
掃一掃
獲取更多福利
獵學(xué)網(wǎng)企業(yè)微信
獵學(xué)網(wǎng)訂閱號(hào)
獵學(xué)網(wǎng)服務(wù)號(hào)