年末将至,Java 开发者必须了解的 16 个Java 顶级开源项目!
1.JavaGuide
Guide 哥大三开始维护的,目前算是纯 Java 类型项目中 Star 数量最多的项目了。但是,本仓库的价值远远(+N次 )比不上像 Spring Boot、Elasticsearch 等等这样非常非常非常优秀的项目。希望以后我也有能力为这些项目贡献一些有价值的代码。
- Github 地址:github.com/Snailclimb/…
- Star: 66.3k
- 介绍: 【Java 学习+面试指南】 一份涵盖大部分 Java 程序员所需要掌握的核心知识。
2.java-design-patterns
感觉还不错。根据官网介绍:
设计模式是程序员在设计应用程序或系统时可以用来解决常见问题的最佳形式化实践。 设计模式可以通过提供经过测试的,经过验证的开发范例来加快开发过程。 重用设计模式有助于防止引起重大问题的细微问题,并且还可以提高熟悉模式的编码人员和架构师的代码可读性。
- Github 地址 : github.com/iluwatar/ja…
- Star: 53.8k
- 介绍: 用 Java 实现的设计模式。java-design-patterns.com。
3.elasticsearch
搜索引擎界的扛把子,但不仅仅是搜素引擎那么简单。
- Github 地址 : github.com/elastic/ela…
- Star: 46.2k
- 介绍: 开源,分布式,RESTful 搜索引擎。
4.spring-boot
必须好好学啊,一定要好好学!现在 Java 后端新项目有不用 Spring Boot 开发的有吗?如果有的话,请把这个人的联系方式告诉我,我有很多话想给他交流交流!
- Github地址: github.com/spring-proj…
- star: 34.8k (1,073 stars this month)
- 介绍: 虽然Spring的组件代码是轻量级的,但它的配置却是重量级的(需要大量XML配置),不过Spring Boot 让这一切成为了过去。 另外Spring Cloud也是基于Spring Boot构建的,我个人非常有必要学习一下。
5.RxJava
这个没怎么用过,不做太多评价。
- Github 地址 : github.com/ReactiveX/R…
- Star: 41.5k
- 介绍:
RxJava
是一个 基于事件流、实现异步操作的库。
6.advanced-java
本项目大部分内容来自中华石杉的一个课程,内容涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识,非常不错了!
- Github 地址:github.com/doocs/advan…
- Star: 36.7k
- 介绍: 互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务等领域知识,后端同学必看,前端同学也可学习。
7.mall
很牛逼的实战项目,还附有详细的文档,作为毕设或者练手项目都再好不过了。
- Github地址: github.com/macrozheng/…
- star: 27.6k
- 介绍: mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
8.okhttp
给我感觉是安卓项目中用的居多。当然,Java 后端项目也会经常用,但是一般使用 Spring Boot 进行开发的时候,如果需要远程调用的话建议使用 Spring 封装的 RestTemplate
。
- Github地址:github.com/square/okht…
- star: 35.4k
- 介绍: 适用于Android,Kotlin和Java的HTTP客户端。square.github.io/okhttp/。
9.guava
很厉害很厉害!提供了很多非常实用的工具类、更加实用的集合类、一些常用的数据结构比如布隆过滤器、缓存等等。
- Github地址:github.com/google/guav…
- star: 35.3k
- 介绍: Guava是一组核心库,其中包括新的集合类型(例如 multimap 和 multiset),不可变集合,图形库以及用于并发,I / O,哈希,基元,字符串等的实用程序!
10.Spark
我木有用过,留下了没有技术的眼泪。
- Github地址:github.com/apache/spar…
- star: 24.7k
- 介绍: Spark 是一个快速、通用的大规模数据处理引擎,和Hadoop的MapReduce计算框架类似,但是相对于MapReduce,Spark凭借其可伸缩、基于内存计算等特点,以及可以直接读写Hadoop上任何格式数据的优势,进行批处理时更加高效,并有更低的延迟。
11.arthas
虽然我自己没有亲身用过,但是身边用过的朋友评价都还挺好的。根据官网介绍,这家伙可以解决下面这些让人脑壳疼的问题:
- 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
- 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
- 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
- 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
- 是否有一个全局视角来查看系统的运行状况?
- 有什么办法可以监控到JVM的实时运行状态?
- 怎么快速定位应用的热点,生成火焰图?
- Github 地址:github.com/alibaba/art…
- star: 18.8 k
- 介绍: Arthas 是 Alibaba 开源的 Java 诊断工具。
12.spring-boot-examples
学习 Spring Boot 必备!配合上我的 springboot-guide :github.com/Snailclimb/…,效果杠杠滴!
- Github 地址:github.com/ityouknow/s…
- star: 20.2 k
- 介绍: Spring Boot 教程、技术栈示例代码,快速简单上手教程。
13.lombok
使用 Lombok 我们可以简化我们的 Java 代码,比如使用它之后我们通过注释就可以实现 getter/setter、equals等方法。
- Github 地址:github.com/rzwitserloo…
- star: 20.2 k
- 介绍: 对 Java 编程语言的非常刺激的补充。projectlombok.org/ 。
14.p3c
与我而言,没有特别惊艳,但是一些提供的一些代码规范确实挺有用的!
- Github 地址:github.com/alibaba/p3c
- star: 19.8 k
- 介绍: 阿里巴巴Java编码指南pmd实现和IDE插件。
15.spring-boot-demo
- Github 地址:github.com/xkcoding/sp…
- Star: 8.8k
- 介绍: spring boot demo 是一个用来深度学习并实战 spring boot 的项目。
16. awesome-java
Guide 哥半个多月前开始维护的,虽然现在 Star 数量比较少,我相信后面一定会有更多人喜欢上这个项目,我也会继续认真维护下去。
- Github 地址:github.com/Snailclimb/…
- Star: 0.3 k
- 介绍: Github 上非常棒的 Java 开源项目集合。