`

国外程序员整理的Java资源大全

 
阅读更多
PS: 引用 http://www.open-open.com/news/view/99e398

1 构建   这里搜集了用来构建应用程序的工具
    Apache Maven:Maven 使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven 优于 Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。
    Gradle:Gradle 采用增量构建。Gradle 通过 Groovy 编程而不是传统的 XML 声明进行配置。Gradle 可以很好地配合 Maven 进行依赖管理,并且把 Ant 脚本当作头等公民。

2 字节码操作 编程操作 Java 字节码的函数库。
ASM:通用底层字节码操作及分析。
Javassist:尝试简化字节码编辑。
Byte Buddy:使用“流式 API”进一步简化字节码生成

3代码分析 软件度量和质量评估工具。
Checkstyle:对编程规范和标准进行静态分析。
FindBugs:通过字节码静态分析找出潜在 Bug。
PMD:对源代码中不良编程习惯进行分析。
SonarQube:通过插件集成其它分析组件,提供评估最终结果报告

4 编译器 创建分析器、解释器和编译器的框架。
ANTLR:功能完备的自顶向下分析复杂框架。
JavaCC:相对 ANTLR 更具体,上手略为简单。支持语法语法超前预测(syntactic lookahead)。

5 持续集成 支持持续集成、测试和应用发布的工具。
Bamboo:Atlassian 的持续集成(CI)解决方案,包含很多其它产品。
CircleCI:提供托管服务,可免费试用。
Codeship:提供托管服务,提供有限免费计划。
Go:ThoughtWork 开源持续集成解决方案。
Jenkins:提供基于服务器的部署服务。
TeamCity:JetBrain 持续集成方案,提供免费版。
Travis:提供托管服务,常用于开源项目。

6 数据库 简化数据库交互的工具、库。
Flyway:使用 Java API 轻松完成数据库迁移。
H2:小型 SQL 数据库,以内存操作著称。
JDBI:便捷的 JDBC 抽象。
jOOQ:基于 SQL schema 生成类型安全代码。
Presto:针对大数据的分布式 SQL 查询引擎。
Querydsl:针对 Java 的类型安全统一查询。

7 日期和时间 处理日期和时间的函数库。
Joda-Time:Java 8 出现之前,它是日期、时间处理的标准函数库。
Time4J:Java 高级日期、时间函数库。

8 依赖注入 帮助代码实现 控制反转模式的函数库。
Dagger:编译期的注入框架,没有使用反射,主要用于 Android 开发。
Guice:轻量级注入框架,功能强大可与 Dagger 媲美

9 开发库 从基础层次上改进开发流程。
AspectJ:面向切面编程扩展,与程序无缝连接。
Auto:源代码生成器集合。
DCEVM:通过修改 JVM,在运行时可无限次重定义已加载的类。OpenJDK 7、8 已提供支持,详情可查看 这个分支(fork)。
JRebel:商用软件,无需重新部署可即时重新加载代码及配置。
Lombok:代码生成器,旨在减少 Java 冗余代码。
RxJava:使用 JVM 中可观察序列,创建异步、基于事件应用程序的函数库。
Spring Loaded:另一个 JVM 类重载代理。
vert.x:JVM 多语言事件驱动应用框架。

10 分布式应用 用来开发分布式、具有容错性应用程序的函数库和框架。

Akka:构建并发、分布式和具有容错功能的事件驱动应用程序所需的工具包和运行时。
Apache Storm:分布式实时计算系统。
Apache ZooKeeper:为大型分布式系统,使用分布式配置、同步和命名注册提供协调服务。
Hazelcast:分布式、高可扩展性内存网格。
Hystrix:为分布式系统提供延迟和容错处理。
JGroups:一组提供可靠消息传输的工具包,可用来创建集群。集群中的节点可互相发送消息。
Quasar:为 JVM 提供轻量级线程和 Actor。

11 发布 使用本机格式分发 Java 应用程序的工具。

Bintray:对二进制发布进行版本控制,可与 Maven 或 Gradle 配合使用。
IzPack:为跨平台部署建立授权工具。
Launch4j:将 JAR 包装为小巧的 Windows 可执行文件。
packr:将程序 JAR、资源和 JVM 打包成 Windows、Linux 和 Mac OS X 的本机文件。

12 文档处理 用来处理 Office 格式文档的函数库。

Apache POI:支持 OOXML (XLSX、DOCX、PPTX)以及 OLE2 (XLS, DOC or PPT)格式的文档。
jOpenDocument:处理 OpenDocument 格式文档。
游戏开发

13 游戏开发框架。 jMonkeyEngine:支持现代 3D 开发的游戏引擎。
libGDX:全面的跨平台高级开发框架。
LWJGL:抽象了 OpenGL、CL、AL 等函数库的健壮框架。

14 GUI 用来创建现代图形用户界面的函数库。

JavaFX:Swing 的继承者。
Scene Builder:JavaFX 虚拟布局工具。

15 高性能 与高性能计算有关的资源,包括集合以及很多具体功能的函数库。

Disruptor:线程间消息函数库。
fastutil:快速紧凑的 Java 类型安全集合。
GS Collections:受 Smalltalk 启发的集合框架。
hftc:Hash set 和 hash map。
HPPC:基本类型集合。
Javolution:针对实时嵌入式系统的函数库。
Trove:基本类型集合。

16 IDE 视图简化开发的集成开发环境。

Eclipse:后台做了很多工作,以其丰富插件著称。
IntelliJ IDEA:支持很多 JVM 语言,为 Android 开发提供了很多不错的选项。其商业版本主要面向企业用户。
NetBeans:集成了很多 Java SE 和 Java EE 特性,包括数据库访问、服务器、HTML5 以及 AngularJS。

17 图像处理 用来帮助创建、评估或操作图形的函数库。

Picasso:Android 下载图像和图像缓存函数库。
ZXing:多种格式的一维、二维条形码处理函数库。

18 JSON 简化 JSON 处理的函数库。

Gson:将 Java 对象序列化为 JSON 及反向操作。使用时提供了很好的性能。
Jackson:与 GSON 类似,但如果需要频繁初始化 Jackson 库会带来性能问题。

19 JVM 和 JDK 目前的 JVM、JDK 实现。

JDK 9:JDK 9 早期访问版本。
OpenJDK:开源实现。

20 日志 记录应用程序的日志函数库。

Apache Log4j 2:对之前版本进行了完全重写。现在的版本具备一个强大的插件和配置架构。
kibana:对日志进行分析并进行可视化。
Logback:Log4j 原班人马作品。被证明是一个强健的日志函数库,通过 Groovy 提供了很多有意思的配置选项。
logstash:日志文件管理工具。
SLF4J:日志抽象层,需要与某个具体日志框架配合使用。

21 机器学习 提供具体统计算法的工具。其算法可从数据中学习。

Apache Hadoop:对商用硬件集群上大规模数据存储和处理的开源软件框架。
Apache Mahout:专注协同过滤、聚类和分类的可扩展算法。
Apache Spark:开源数据分析集群计算框架。
h2o:用作大数据统计的分析引擎。
Weka:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。

22 消息 在客户端之间进行消息传递,确保协议独立性的工具。

Apache ActiveMQ:实现 JMS 的开源消息代理(broker),可将同步通讯转为异步通讯。
Apache Kafka:高吞吐量分布式消息系统。
JBoss HornetQ:清晰、准确、模块化且方便嵌入的消息工具。
JeroMQ:ZeroMQ 的纯 Java 实现。

23 其它 其它资源。

Design Patterns:实现并解释了最常见的设计模式。
Jimfs:内存文件系统。
Lanterna:类似 curses 的简单 console 文本 GUI 函数库。
LightAdmin:可插入式 CRUD UI 函数库,可用于快速应用开发。
Metrics:创建自己的软件度量或者为支持框架添加度量信息,通过 JMX 或 HTTP 进行发布或者发送到数据库。
OpenRefine:用来处理混乱数据的工具,包括清理、转换、使用 Web Service 进行扩展并将其关联到数据库。
RoboVM:Java 编写原生 iOS 应用。

24 自然语言处理 用来专门处理文本的函数库。

Apache OpenNL:处理类似分词等常见任务的工具。
CoreNLP:斯坦佛的 CoreNLP 提供了一组基础工具,可以处理类似标签、实体名识别和情感分析这样的任务。
LingPipe:一组可以处理各种任务的工具集,支持 POS 标签、情感分析等。
Mallet:统计学自然语言处理、文档分类、聚类、主题建模等。

25 网络 网络编程函数库。

Netty:构建高性能网络应用程序开发框架。
OkHttp:一个 Android 和 Java 应用的 HTTP+SPDY 客户端。

26 ORM 处理对象持久化的 API。

EclipseLink:支持许多持久化标准,JPA、JAXB、JCA 和 SDO。
Hibernate:广泛使用、强健的持久化框架。Hibernate 的技术社区非常活跃。
Ebean:支持快速数据访问和编码的 ORM 框架。

27 PDF 用来帮助创建 PDF 文件的资源。

Apache FOP:从 XSL-FO 创建 PDF。
Apache PDFBox:用来创建和操作 PDF 的工具集。
DynamicReports:JasperReports 的精简版。
iText:一个易于使用的 PDF 函数库,用来编程创建 PDF 文件。注意,用于商业用途时需要许可证。
JasperReports:一个复杂的报表引擎。

28 REST 框架 用来创建 RESTful 服务的框架。

Dropwizard:偏向于自己使用的 Web 框架。用来构建 Web 应用程序,使用了 Jetty、Jackson、Jersey 和 Metrics。
Jersey:JAX-RS 参考实现。
RESTEasy:经过 JAX-RS 规范完全认证的可移植实现。
Retrofit:一个 Java 类型安全的 REST 客户端。
Spark:受到 Sinatra 启发的 Java REST 框架。
Swagger:Swagger 是一个规范且完整的框架,提供描述、生产、消费和可视化 RESTful Web Service。

28 科学 用于科学计算和分析的函数库。

SCaVis:用于科学计算、数据分析和数据可视化环境。

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

Apache Solr:一个完全的企业搜索引擎。为高吞吐量通信进行了优化。
Elasticsearch:一个分布式、支持多租户(multitenant)全文本搜索引擎。提供了 RESTful Web 接口和无 schema 的 JSON 文档。

30 安全 用于处理安全、认证、授权或会话管理的函数库。

Apache Shiro:执行认证、授权、加密和会话管理。
Cryptomator:在云上进行客户端跨平台透明加密。
Keycloak:为浏览器应用和 RESTful Web Service 集成 SSO 和 IDM。目前还处于 beta 版本,但是看起来非常有前途。
PicketLink:PicketLink 是一个针对 Java 应用进行安全和身份认证管理的大型项目(Umbrella Project)。
Spring Security:专注认证、授权和多维度攻击防护框架。

31 序列化 用来高效处理序列化的函数库。

FlatBuffers:序列化函数库,高效利用内存,无需解包和解析即可高效访问序列化数据。
Kryo:快速和高效的对象图形序列化框架。
MessagePack:一种高效的二进制序列化格式。

32 服务器 用来部署应用程序的服务器。

Apache Tomcat:针对 Servlet 和 JSP 的应用服务器,健壮性好且适用性强。
Apache TomEE:Tomcat 加 Java EE。
GlassFish:Java EE 开源参考实现,由 Oracle 资助开发。
Jetty:轻量级、小巧的应用服务器,通常会嵌入到项目中。
WildFly:之前被称作 JBoss,由 Red Hat 开发。支持很多 Java EE 功能。

33 模版引擎 对模板中表达式进行替换的工具。

Apache Velocity:提供 HTML 页面模板、email 模板和通用开源代码生成器模板。
FreeMarker:通用模板引擎,不需要任何重量级或自己使用的依赖关系。
Handlebars.java:使用 Java 编写的模板引擎,逻辑简单,支持语义扩展(semantic Mustache)。
JavaServer Pages:通用网站模板,支持自定义标签库。
Thymeleaf:旨在替换 JSP,支持 XML 文件。

34 测试 测试内容从对象到接口,涵盖性能测试和基准测试工具。

Apache JMeter:功能性测试和性能评测。
Arquillian:集成测试和功能行测试平台,集成 Java EE 容器。
AssertJ:支持流式断言提高测试的可读性。
JMH:JVM 微基准测试工具。
JUnit:通用测试框架。
Mockito:在自动化单元测试中创建测试对象,为 TDD 或 BDD 提供支持。
Selenium:为 Web 应用程序提供可移植软件测试框架。
Selenide:为 Selenium 提供精准的周边 API,用来编写稳定且可读的 UI 测试。
TestNG:测试框架。
VisualVM:提供可视化方式查看运行中的应用程序信息。

35 工具类 通用工具类函数库。

Apache Commons:提供各种用途的函数,比如配置、验证、集合、文件上传或 XML 处理等。
Guava:集合、缓存、支持基本类型、并发函数库、通用注解、字符串处理、I/O等。
javatuples:正如名字表示的那样,提供 tuple 支持。尽管目前 tuple 的概念还有留有争议。

36 网络爬虫 用于分析网站内容的函数库。

Apache Nutch:可用于生产环境的高度可扩展、可伸缩的网络爬虫。
Crawler4j:简单的轻量级爬虫。
JSoup:刮取、解析、操作和清理 HTML。

37 Web 框架 用于处理 Web 应用程序不同层次间通讯的框架。

Apache Tapestry:基于组件的框架,使用 Java 创建动态、强健的、高度可扩展的 Web 应用程序。
Apache Wicket:基于组件的 Web 应用框架,与 Tapestry 类似带有状态显示 GUI。
Google Web Toolkit:一组 Web 开发工具集,包含在客户端将 Java 代码转为 JavaScript 的编译器、XML 解析器、RCP API、JUnit 集成、国际化支持和 GUI 控件。
Grails:Groovy 框架,旨在提供一个高效开发环境,使用约定而非配置、没有 XML 并支持混入(mixin)。
Play: 使用约定而非配置,支持代码热加载并在浏览器中显示错误。
PrimeFaces:JSF 框架,提供免费版和带技术支持的商业版。包含一些前端组件。
Spring Boot:微框架,简化了 Spring 新程序的开发过程。
Spring:旨在简化 Java EE 的开发过程,提供依赖注入相关组件并支持面向切面编程。
Vaadin:基于 GWT 构建的事件驱动框架。使用服务端架构,客户端使用 Ajax。
Ninja:Java 全栈 Web 开发框架。非常稳固、快速和高效。
Ratpack:一组 Java 开发函数库,用于构建快速、高效、可扩展且测试完备的 HTTP 应用程序。








分享到:
评论

相关推荐

    国外程序员整理的机器学习资源大全.pdf

    国外程序员整理的机器学习资源大全国外程序员整理的机器学习资源大全国外程序员整理的机器学习资源大全国外程序员整理的机器学习资源大全国外程序员整理的机器学习资源大全国外程序员整理的机器学习资源大全国外...

    国外程序员整理的系统管理员资源大全

    【系统管理员资源大全】是国外程序员kahun在Github上整理的一份开源资源列表,涵盖了系统管理员在工作中可能需要用到的各种工具和软件。这份资源大全旨在帮助系统管理员提高工作效率,确保系统的稳定运行,同时也为...

    Java程序员就业面试题大全

    Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全Java程序员就业面试题大全

    Java 黑马程序员入学Java知识(精华总结)

    Java 黑马程序员入学Java知识(精华总结)

    黑马程序员入学Java知识——精华总结

    黑马程序员入学Java知识——精华总结

    黑马程序员-Java语言进阶-源码、教程笔记.zip

    day01_Object类、常用API day02_Collection、泛型 day03_List、Set、数据结构、Collections day04_Map,斗地主案例 day05_异常,线程 day06_线程、同步 day07_等待与唤醒案例、线程池、Lambda...Java基础小节练习题答案

    C_C++程序员Java编程

    10. **学习资源**:Java拥有庞大的开发者社区和丰富的开源项目,学习资料丰富;C++同样如此,但可能更偏向于底层和系统级编程。 总的来说,C++程序员转向Java编程需要适应一些新的编程理念和习惯,但两者间的许多...

    最全JAVA学习路线一条龙思维导图(附资源链接)PS:程序员鱼皮

    最全JAVA学习路线一条龙思维导图(附资源链接)PS:程序员鱼皮 1. 最新,完整一条龙的大厂 Java 学习路线,从入门到入土 2. 同时适用于想全面学习 / 快速求职的同学,可以根据符号来定制自己的专属学习路线 3. 给出...

    java程序员面试交流项目经验

    java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流项目经验java程序员面试交流...

    JAVA程序员面试大全(包括笔试和面试)

    Java程序员面试大全,这是一份综合性的资源,涵盖了Java程序员在面试和笔试过程中可能遇到的各种问题和知识点。作为Java开发者,深入理解并掌握这些内容至关重要,因为它们将直接影响到你在技术领域的竞争力和职业...

    【黑马程序员】Java大型电商项目—品优购【配套源码+笔记】.zip

    【黑马程序员】Java大型电商项目—品优购【配套源码+笔记】

    Java程序员简历Java程序员简历.doc

    Java程序员简历Java程序员简历

    java程序员规划java程序员职业规划.docx

    Java 程序员职业规划 Java 程序员职业规划是指 Java 程序员如何规划自己的职业生涯,使自己在职业道路上更快速、更自信地发展。本文将从 Java 程序员职业规划的几个方面进行详细的介绍。 一、 认识自我 在职业...

    传智播客.黑马程序员《Java 基础入门》课后习题答案

    《Java 基础入门》课后习题答案 第 第 1 章 Java 开发入门 一、填空题 1、 Java EE、Java SE、Java ME 2、 JRE 3、 javac 4、 bin 5、 path、classpath 二、选择题 1、ABCD 2、C 3、D 4、B 5、B 三、简答题 1、 面向...

    java程序员简历模板

    Java 程序员简历模板 以下是 Java 程序员简历模板的知识点总结: 一、 HR 如何刷简历 * 定位准确:个性鲜明,一眼看上去就能贴上技术精英、管理岗‘专家的标签 * 内部一致:内容聚焦,不能出现前后不符 * 简明...

    java程序员转正ppt

    【Java程序员转正知识点】 1. **自我介绍**: 在转正答辩中,自我介绍是展示个人背景和技能的关键环节。作为一名Java程序员,应当包括自己的教育背景、编程经验、项目经历以及对Java语言的理解。 2. **技术成长**...

    《JAVA面试题》--JAVA 黑马程序员 面试宝典全学科.zip

    十余年JAVA从业经验,精通JAVA技术体系,有志于做JAVA技能提升的朋友可与我联系,交个朋友 十余年JAVA从业经验,精通JAVA技术体系,有志于做JAVA技能提升的朋友可与我联系,交个朋友 十余年JAVA从业经验,精通JAVA...

    《Java程序员》

    《Java程序员》 本书对于即将从事Java职业或初步从业的程序员来说是一本难得的好书。从生存、制胜、发展三个方面入手,为大家展示出程序员求职与工作的一幅3D全景图像。本书中既有在公司中的生存技巧,又有高手达人...

Global site tag (gtag.js) - Google Analytics