重磅推薦!國外Java大牛最新Java資源整理

原文: https://github.com/akullpp/awesome-java


構建

這里搜集了用來構建應用程序的工具。

Apache Maven:Maven使用聲明進行構建并進行依賴管理,偏向于使用約定而不是配置進行構建。Maven優(yōu)于Apache Ant。后者采用了一種過程化的方式進行配置,所以維護起來相當困難。

Gradle:Gradle采用增量構建。Gradle通過Groovy編程而不是傳統(tǒng)的XML聲明進行配置。Gradle可以很好地配合Maven進行依賴管理,并且把Ant腳本當作頭等公民。

字節(jié)碼操作

編程操作Java字節(jié)碼的函數(shù)庫。

ASM:通用底層字節(jié)碼操作及分析。

Javassist:嘗試簡化字節(jié)碼編輯。

Byte Buddy:使用“流式API”進一步簡化字節(jié)碼生成。

代碼分析

軟件度量和質(zhì)量評估工具。

Checkstyle:對編程規(guī)范和標準進行靜態(tài)分析。

FindBugs:通過字節(jié)碼靜態(tài)分析找出潛在Bug。

PMD:對源代碼中不良編程習慣進行分析。

SonarQube:通過插件集成其它分析組件,提供評估最終結(jié)果報告。

編譯器

創(chuàng)建分析器、解釋器和編譯器的框架。

ANTLR:功能完備的自頂向下分析復雜框架。

JavaCC:相對ANTLR更具體,上手略為簡單。支持語法語法超前預測(syntactic lookahead)。

持續(xù)集成

支持持續(xù)集成、測試和應用發(fā)布的工具。

Bamboo:Atlassian的持續(xù)集成(CI)解決方案,包含很多其它產(chǎn)品。

CircleCI:提供托管服務,可免費試用。

Codeship:提供托管服務,提供有限免費計劃。

Go:ThoughtWork開源持續(xù)集成解決方案。

Jenkins:提供基于服務器的部署服務。

TeamCity:JetBrain持續(xù)集成方案,提供免費版。

Travis:提供托管服務,常用于開源項目。

數(shù)據(jù)庫

簡化數(shù)據(jù)庫交互的工具、庫。

Flyway:使用Java API輕松完成數(shù)據(jù)庫遷移。

H2:小型SQL數(shù)據(jù)庫,以內(nèi)存操作著稱。

JDBI:便捷的JDBC抽象。

jOOQ:基于SQL schema生成類型安全代碼。

Presto:針對大數(shù)據(jù)的分布式SQL查詢引擎。

Querydsl:針對Java的類型安全統(tǒng)一查詢。

日期和時間

處理日期和時間的函數(shù)庫。

Joda-Time:Java 8出現(xiàn)之前,它是日期、時間處理的標準函數(shù)庫。

Time4J:Java高級日期、時間函數(shù)庫。

依賴注入

幫助代碼實現(xiàn)控制反轉(zhuǎn)模式的函數(shù)庫。

Dagger :編譯期的注入框架,沒有使用反射,主要用于Android開發(fā)。

Guice:輕量級注入框架,功能強大可與Dagger媲美。

開發(fā)庫

從基礎層次上改進開發(fā)流程。

AspectJ:面向切面編程擴展,與程序無縫連接。

Auto:源代碼生成器集合。

DCEVM:通過修改JVM,在運行時可無限次重定義已加載的類。OpenJDK 7、8已提供支持,詳情可查看這個分支(fork)。

JRebel:商用軟件,無需重新部署可即時重新加載代碼及配置。

Lombok:代碼生成器,旨在減少Java冗余代碼。

RxJava:使用JVM中可觀察序列,創(chuàng)建異步、基于事件應用程序的函數(shù)庫。

Spring Loaded:另一個JVM類重載代理。

vert.x:JVM多語言事件驅(qū)動應用框架。

分布式應用

用來開發(fā)分布式、具有容錯性應用程序的函數(shù)庫和框架。

Akka:構建并發(fā)、分布式和具有容錯功能的事件驅(qū)動應用程序所需的工具包和運行時。

Apache Storm:分布式實時計算系統(tǒng)。

Apache ZooKeeper:為大型分布式系統(tǒng),使用分布式配置、同步和命名注冊提供協(xié)調(diào)服務。

Hazelcast:分布式、高可擴展性內(nèi)存網(wǎng)格。

Hystrix:為分布式系統(tǒng)提供延遲和容錯處理。

JGroups:一組提供可靠消息傳輸?shù)墓ぞ甙捎脕韯?chuàng)建集群。集群中的節(jié)點可互相發(fā)送消息。

Quasar:為JVM提供輕量級線程和Actor。

發(fā)布

使用本機格式分發(fā)Java應用程序的工具。

Bintray:對二進制發(fā)布進行版本控制,可與Maven或Gradle配合使用。

IzPack:為跨平臺部署建立授權工具。

Launch4j:將JAR包裝為小巧的Windows可執(zhí)行文件。

packr:將程序JAR、資源和JVM打包成Windows、Linux和Mac OS X的本機文件。

文檔處理

用來處理Office格式文檔的函數(shù)庫。

Apache POI:支持OOXML (XLSX、DOCX、PPTX)以及 OLE2 (XLS, DOC or PPT)格式的文檔。

jOpenDocument:處理OpenDocument格式文檔。

游戲開發(fā)

游戲開發(fā)框架。

jMonkeyEngine:支持現(xiàn)代3D開發(fā)的游戲引擎。

libGDX:全面的跨平臺高級開發(fā)框架。

LWJGL:抽象了OpenGL、CL、AL等函數(shù)庫的健壯框架。

GUI

用來創(chuàng)建現(xiàn)代圖形用戶界面的函數(shù)庫。

JavaFX:Swing的繼承者。

Scene Builder:JavaFX虛擬布局工具。

高性能

與高性能計算有關的資源,包括集合以及很多具體功能的函數(shù)庫。

Disruptor:線程間消息函數(shù)庫。

fastutil:快速緊湊的Java類型安全集合。

GS Collections:受Smalltalk啟發(fā)的集合框架。

hftc:Hash set和hash map。

HPPC:基本類型集合。

Javolution:針對實時嵌入式系統(tǒng)的函數(shù)庫。

Trove:基本類型集合。

IDE

視圖簡化開發(fā)的集成開發(fā)環(huán)境。

Eclipse:后臺做了很多工作,以其豐富插件著稱。

IntelliJ IDEA:支持很多JVM語言,為Android開發(fā)提供了很多不錯的選項。其商業(yè)版本主要面向企業(yè)用戶。

NetBeans:集成了很多Java SE和Java EE特性,包括數(shù)據(jù)庫訪問、服務器、HTML5以及AngularJS。

圖像處理

用來幫助創(chuàng)建、評估或操作圖形的函數(shù)庫。

Picasso:Android下載圖像和圖像緩存函數(shù)庫。

ZXing:多種格式的一維、二維條形碼處理函數(shù)庫。

JSON

簡化JSON處理的函數(shù)庫。

Gson:將Java對象序列化為JSON及反向操作。使用時提供了很好的性能。

Jackson:與GSON類似,但如果需要頻繁初始化Jackson庫會帶來性能問題。

JVM和JDK

目前的JVM、JDK實現(xiàn)。

JDK 9:JDK 9早期訪問版本。

OpenJDK:開源實現(xiàn)。

日志

記錄應用程序的日志函數(shù)庫。

Apache Log4j 2:對之前版本進行了完全重寫。現(xiàn)在的版本具備一個強大的插件和配置架構。

kibana:對日志進行分析并進行可視化。

Logback:Log4j原班人馬作品。被證明是一個強健的日志函數(shù)庫,通過Groovy提供了很多有意思的配置選項。

logstash:日志文件管理工具。

SLF4J:日志抽象層,需要與某個具體日志框架配合使用。

機器學習

提供具體統(tǒng)計算法的工具。其算法可從數(shù)據(jù)中學習。

Apache Hadoop:對商用硬件集群上大規(guī)模數(shù)據(jù)存儲和處理的開源軟件框架。

Apache Mahout:專注協(xié)同過濾、聚類和分類的可擴展算法。

Apache Spark:開源數(shù)據(jù)分析集群計算框架。

h2o:用作大數(shù)據(jù)統(tǒng)計的分析引擎。

Weka:用作數(shù)據(jù)挖掘的算法集合,包括從預處理到可視化的各個層次。


消息

在客戶端之間進行消息傳遞,確保協(xié)議獨立性的工具。

Apache ActiveMQ:實現(xiàn)JMS的開源消息代理(broker),可將同步通訊轉(zhuǎn)為異步通訊。

Apache Kafka:高吞吐量分布式消息系統(tǒng)。

JBoss HornetQ:清晰、準確、模塊化且方便嵌入的消息工具。

JeroMQ:ZeroMQ的純Java實現(xiàn)。

其它

其它資源。

Design Patterns:實現(xiàn)并解釋了最常見的設計模式。

Jimfs:內(nèi)存文件系統(tǒng)。

Lanterna:類似curses的簡單console文本GUI函數(shù)庫。

LightAdmin:可插入式CRUD UI函數(shù)庫,可用于快速應用開發(fā)。

Metrics:創(chuàng)建自己的軟件度量或者為支持框架添加度量信息,通過JMX或HTTP進行發(fā)布或者發(fā)送到數(shù)據(jù)庫。

OpenRefine:用來處理混亂數(shù)據(jù)的工具,包括清理、轉(zhuǎn)換、使用Web Service進行擴展并將其關聯(lián)到數(shù)據(jù)庫。

RoboVM:Java編寫原生iOS應用。

自然語言處理

用來專門處理文本的函數(shù)庫。

Apache OpenNL:處理類似分詞等常見任務的工具。

CoreNLP:斯坦佛的CoreNLP提供了一組基礎工具,可以處理類似標簽、實體名識別和情感分析這樣的任務。

LingPipe:一組可以處理各種任務的工具集,支持POS標簽、情感分析等。

Mallet:統(tǒng)計學自然語言處理、文檔分類、聚類、主題建模等。

網(wǎng)絡

網(wǎng)絡編程函數(shù)庫。

Netty:構建高性能網(wǎng)絡應用程序開發(fā)框架。

OkHttp :一個Android和Java應用的HTTP+SPDY客戶端。

ORM

處理對象持久化的API。

EclipseLink:支持許多持久化標準,JPA、JAXB、JCA和SDO。

Hibernate:廣泛使用、強健的持久化框架。Hibernate的技術社區(qū)非常活躍。

Ebean:支持快速數(shù)據(jù)訪問和編碼的ORM框架。

PDF

用來幫助創(chuàng)建PDF文件的資源。

Apache FOP:從XSL-FO創(chuàng)建PDF。

Apache PDFBox:用來創(chuàng)建和操作PDF的工具集。

DynamicReports:JasperReports的精簡版。

iText:一個易于使用的PDF函數(shù)庫,用來編程創(chuàng)建PDF文件。注意,用于商業(yè)用途時需要許可證。

JasperReports:一個復雜的報表引擎。

REST框架

用來創(chuàng)建RESTful 服務的框架。

Dropwizard:偏向于自己使用的Web框架。用來構建Web應用程序,使用了Jetty、Jackson、Jersey和Metrics。

Jersey:JAX-RS參考實現(xiàn)。

RESTEasy:經(jīng)過JAX-RS規(guī)范完全認證的可移植實現(xiàn)。

Retrofit:一個Java類型安全的REST客戶端。

Spark:受到Sinatra啟發(fā)的Java REST框架。

Swagger:Swagger是一個規(guī)范且完整的框架,提供描述、生產(chǎn)、消費和可視化RESTful Web Service。

科學

用于科學計算和分析的函數(shù)庫。

SCaVis:用于科學計算、數(shù)據(jù)分析和數(shù)據(jù)可視化環(huán)境。

搜索

文檔索引引擎,用于搜索和分析。

Apache Solr :一個完全的企業(yè)搜索引擎。為高吞吐量通信進行了優(yōu)化。

Elasticsearch:一個分布式、支持多租戶(multitenant)全文本搜索引擎。提供了RESTful Web接口和無schema的JSON文檔。

安全

用于處理安全、認證、授權或會話管理的函數(shù)庫。

Apache Shiro:執(zhí)行認證、授權、加密和會話管理。

Cryptomator:在云上進行客戶端跨平臺透明加密。

Keycloak:為瀏覽器應用和RESTful Web Service集成SSO和IDM。目前還處于beta版本,但是看起來非常有前途。

PicketLink:PicketLink是一個針對Java應用進行安全和身份認證管理的大型項目(Umbrella Project)。

Spring Security:專注認證、授權和多維度攻擊防護框架。

序列化

用來高效處理序列化的函數(shù)庫。

FlatBuffers:序列化函數(shù)庫,高效利用內(nèi)存,無需解包和解析即可高效訪問序列化數(shù)據(jù)。

Kryo:快速和高效的對象圖形序列化框架。

MessagePack:一種高效的二進制序列化格式。

服務器

用來部署應用程序的服務器。

Apache Tomcat:針對Servlet和JSP的應用服務器,健壯性好且適用性強。

Apache TomEE:Tomcat加Java EE。

GlassFish:Java EE開源參考實現(xiàn),由Oracle資助開發(fā)。

Jetty:輕量級、小巧的應用服務器,通常會嵌入到項目中。

WildFly:之前被稱作JBoss,由Red Hat開發(fā)。支持很多Java EE功能。

模版引擎

對模板中表達式進行替換的工具。

Apache Velocity:提供HTML頁面模板、email模板和通用開源代碼生成器模板。

FreeMarker:通用模板引擎,不需要任何重量級或自己使用的依賴關系。

Handlebars.java:使用Java編寫的模板引擎,邏輯簡單,支持語義擴展(semantic Mustache)。

JavaServer Pages:通用網(wǎng)站模板,支持自定義標簽庫。

Thymeleaf:旨在替換JSP,支持XML文件。

測試

測試內(nèi)容從對象到接口,涵蓋性能測試和基準測試工具。

Apache JMeter:功能性測試和性能評測。

Arquillian:集成測試和功能行測試平臺,集成Java EE容器。

AssertJ:支持流式斷言提高測試的可讀性。

JMH:JVM微基準測試工具。

JUnit:通用測試框架。

Mockito:在自動化單元測試中創(chuàng)建測試對象,為TDD或BDD提供支持。

Selenium:為Web應用程序提供可移植軟件測試框架。

Selenide:為Selenium提供精準的周邊API,用來編寫穩(wěn)定且可讀的UI測試。

TestNG :測試框架。

VisualVM:提供可視化方式查看運行中的應用程序信息。

工具類

通用工具類函數(shù)庫。

Apache Commons:提供各種用途的函數(shù),比如配置、驗證、集合、文件上傳或XML處理等。

Guava:集合、緩存、支持基本類型、并發(fā)函數(shù)庫、通用注解、字符串處理、I/O等。

javatuples:正如名字表示的那樣,提供tuple支持。盡管目前tuple的概念還有留有爭議。

網(wǎng)絡爬蟲

用于分析網(wǎng)站內(nèi)容的函數(shù)庫。

Apache Nutch :可用于生產(chǎn)環(huán)境的高度可擴展、可伸縮的網(wǎng)絡爬蟲。

Crawler4j:簡單的輕量級爬蟲。

JSoup :刮取、解析、操作和清理HTML。

Web框架

用于處理Web應用程序不同層次間通訊的框架。

Apache Tapestry:基于組件的框架,使用Java創(chuàng)建動態(tài)、強健的、高度可擴展的Web應用程序。

Apache Wicket:基于組件的Web應用框架,與Tapestry類似帶有狀態(tài)顯示GUI。

Google Web Toolkit:一組Web開發(fā)工具集,包含在客戶端將Java代碼轉(zhuǎn)為JavaScript的編譯器、XML解析器、RCP API、JUnit集成、國際化支持和GUI控件。

Grails:Groovy框架,旨在提供一個高效開發(fā)環(huán)境,使用約定而非配置、沒有XML并支持混入(mixin)。

Play: 使用約定而非配置,支持代碼熱加載并在瀏覽器中顯示錯誤。

PrimeFaces:JSF框架,提供免費版和帶技術支持的商業(yè)版。包含一些前端組件。

Spring Boot:微框架,簡化了Spring新程序的開發(fā)過程。

Spring:旨在簡化Java EE的開發(fā)過程,提供依賴注入相關組件并支持面向切面編程。

Vaadin:基于GWT構建的事件驅(qū)動框架。使用服務端架構,客戶端使用Ajax。

Ninja:Java全棧Web開發(fā)框架。非常穩(wěn)固、快速和高效。

Ratpack:一組Java開發(fā)函數(shù)庫,用于構建快速、高效、可擴展且測試完備的HTTP應用程序。

資源

社區(qū)

活躍的討論區(qū)。

r/java:Java社區(qū)的Subreddit。

stackoverflow:問答平臺。

有影響的書籍

具有廣泛影響且值得閱讀的Java經(jīng)典書籍。

Effective Java (2nd Edition)

Java Concurrency in Practice | Java并發(fā)編程實戰(zhàn)

Thinking in Java | 中文版

播客

可以一邊編程一邊聽的東西。

The Java Posse

Twitter

值得關注的帳號。

Adam Bien:自由職業(yè)者、作家、JavaONE明星演講者、顧問、Java Champion。

Antonio Goncalves:Java Champion、JUG Leader、Devoxx France、Java EE 6/7、JCP、作家。

Arun Gupta:Java Champion、JavaONE明星演講者、JUG Leader、Devoxx4Kids成員、Red Hatter。

Bruno Borges:Oracle產(chǎn)品經(jīng)理、Java Jock。

Ed Burns:Oracle技術團隊顧問。

Eugen Paraschiv:Spring安全課程作者。

James Weaver:Java、JavaFX、IoT開發(fā)者、作者和演講者。

Java EE:Java EE Twitter官方賬號。

Java Magazine:Java雜志官方賬號。

Java.net:Java.net官方賬號。

Java:Java Twitter官方賬號。

Javin Paul:知名Java博客作者。

Lukas Eder:Data Geekery(jOOQ)創(chuàng)始人兼CEO。

Mario Fusco:RedHatter、JUG協(xié)調(diào)、活躍講師和作者。

Mark Reinhold:Oracle首席架構師、Java平臺開發(fā)組。

Martijn Verburg:London JUG co-leader、演講者、作家、Java Champion等。

OpenJDK:OpenJDK官方賬號。

Reza Rahman:Java EE、GlassFish、WebLogic傳道者、作家、演講者、開源黑客。

Simon Maple:Java Champion、virtualJUG創(chuàng)始人、LJC leader、RebelLabs作者。

Stephen Colebourne: Java Champion、演講者。

Tim Boudreau:作家、NetBeans大牛。

Trisha Gee:Java Champion、演講者。

網(wǎng)站

值得閱讀的網(wǎng)站。

Google Java Style

InfoQ

Java Code Geeks

Java.net

Javalobby

JavaWorld

RebelLabs

The Java Specialist’ Newsletter

TheServerSide.com

Thoughts On Java

ImportNew

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,443評論 6 532
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,530評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,407評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,981評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,759評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,204評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,263評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,415評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,955評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,650評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,892評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,675評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,967評論 2 374

推薦閱讀更多精彩內(nèi)容

  • Java資源大全中文版 構建工具 字節(jié)碼操作 集群管理 代碼分析 編譯器生成工具 外部配置工具 約束滿足問題求解程...
    日漫君閱讀 592評論 0 11
  • 轉(zhuǎn)自:http://www.codeceo.com/article/java-resource-collectio...
    Avro閱讀 1,795評論 1 57
  • ref:JAVA程序員一定知道的優(yōu)秀第三方庫(2016版) 有哪些優(yōu)秀的Java開源項目最值得閱讀? 推薦!國外程...
    Vincent_Sean閱讀 3,291評論 0 31
  • 親愛的自己: 你是不是真的該心無旁念的靜下心,晚自習并不單單是為了順應父母的意思,也不是讓你來聊人生,你現(xiàn)在期盼的...
    氫氰清閱讀 217評論 0 1
  • 第十八個出場的是字母 R。 R 爸爸跟P爸爸長得很像,都有個超級大的頭。 不過 R 爸爸非常愛運動,而且他最愛跑步...
    Min陳閱讀 404評論 0 0