查看原文
其他

GitHub上最牛逼的10个Java项目,号称"Star收割机",Dubbo只能排 12

程序猿DD 2020-10-16

The following article is from 阿飞的博客 Author 阿飞的博客

点击上方蓝色“程序猿DD”,选择“设为星标”

回复“资源”获取独家整理的学习资料!

来源 | 公众号「阿飞的博客」

1. CS-Notes

star:92.1k 介绍:技术面试必备基础知识、Leetcode、计算机操作系统、计算机网络、系统设计、Java、Python、C++ ;地址:https://cyc2018.github.io/CS-Notes;

其中,算法包括:剑指 Offer 题解、Leetcode 题解、算法、笔试面试题库。数据库包括:数据库系统原理、SQL、Leetcode-Database 题解、MySQL、Redis。Java包括:Java 基础、Java 容器、Java 并发、Java 虚拟机、Java I/O。系统设计包括:系统设计基础、分布式、集群、攻击技术、缓存、消息队列。

2. JavaGuide

star:69.8k 介绍:【Java学习+面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。地址:https://github.com/Snailclimb/JavaGuide。

作者在gitee码云上也有维护这个项目:https://gitee.com/SnailClimb/JavaGuide。这个Github项目涵盖的内容也非常全面。以JVM为例:

  1. Java内存区域

  2. JVM垃圾回收

  3. JDK 监控和故障处理工具

  4. 类文件结构

  5. 类加载过程

  6. 类加载器

  7. 【待完成】最重要的 JVM 参数指南(翻译完善了一半)

  8. JVM 配置常用参数和常用 GC 调优策略

  9. 【加餐】大白话带你认识JVM

3. java-design-patterns

star:55.6k 介绍:Design patterns implemented in Java ,即用Java实现的设计模式。地址:https://github.com/iluwatar/java-design-patterns

设计模式对一个程序员或者架构师的重要性不言而喻,无论是架构设计,日常编码,代码可读性,还是为了面试。设计模式都是Java程序员必须掌握的东西。

4. elasticsearch

star:47.2k 介绍:开源、分布式,基于Restful设计的搜索引擎。地址:https://github.com/elastic/elasticsearch。

这么牛逼的开源中间件我想不用过多介绍了吧。如果你连es都没听说过,我很怀疑你是不是一个Java程序员。让笔者惊讶的是,es的star数居然超过了大名鼎鼎的SpringBoot。

5. SpringBoot

star:45.7k 介绍:Spring Boot(对,你没看错,Github上SpringBoot的主页没有简介,就是这么自信)。地址:https://github.com/spring-projects/spring-boot。

作为SpringCloud微服务生态的基石,作为Java企业级开发的革命之作,它对于每一个Java程序员的重要性,不亚于它们家老祖宗SpringFramework。它让WEB开发变得如此轻松简单,你可以不用SpringCloud,但是你的JavaWeb项目还没有使用SpringBoot,那就有点说不过去了!

6. interviews

star:42.2k 介绍:你需要知道的关于找工作的所有事情!地址:https://github.com/kdn251/interviews

又是一个带有浓厚本土特色的Github项目。值得一提的是,如果你想学习算法,这里非常值得一看。不信?笔者贴几张图给你瞅瞅,嘿嘿:

Dijkstra最短路径算法:


7. RxJava

star:41.9k 介绍:JVM响应式编程扩展,一个为JVM的包含了异步和基于事件的。地址:https://github.com/ReactiveX/RxJava


8. advanced-java

star:39.3k 介绍:互联网 Java 工程师进阶知识完全扫盲:涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识,后端同学必看。地址:https://github.com/doocs/advanced-java

本项目内容内容涵盖高并发、分布式、高可用、微服务、海量数据处理等领域知识。例如,分库分表相关内容:为什么要分库分表(设计高并发系统的时候,数据库层面该如何设计)?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?你们具体是如何对数据库如何进行垂直拆分或水平拆分的?现在有一个未分库分表的系统,未来要分库分表,如何设计才可以让系统从未分库分表动态切换到分库分表上?如何设计可以动态扩容缩容的分库分表方案?分库分表之后,id 主键如何处理?

海量数据处理:如何从大量的 URL 中找出相同的 URL?如何从大量数据中找出高频词?如何找出某一天访问百度网站最多的 IP?如何在大量的数据中找出不重复的整数?如何在大量的数据中判断一个数是否存在?如何查询最热门的查询串?如何统计不同电话号码的个数?如何从 5 亿个数中找出中位数?如何按照 query 的频度排序?如何找出排名前 500 的数?

... ...

9. okhttp

star:36k 介绍:Square的Java和Kotlin的HTTP客户端。地址:https://github.com/square/okhttp

Java项目和Android项目都可以使用的HTTP客户端。它就是由Square设计用于替换HttpUrlConnection和Apache HttpClient这两个糟糕的HTTP客户端的。是安卓端最火热的轻量级框架。正因为它的优秀,现在很多Java服务端也用okhttp作为HTTP客户端。如果你还没用过它,那么请赶紧尝试吧,两个字:真香!!!

10. guava

star:36k 介绍:谷歌公司Java核心库;地址:https://github.com/google/guava

这个库能力可太大了,主要包括:新的集合类型(例如multimap和multiset等),不可变集合,图形库,并发工具,I/O,Hashing,本地缓存,限流等等。无论在谷歌,还是其他公司都是用的非常广泛。

总结

我们欣喜看到Github上Java相关获取Star数Top10的项目,有好几个是中国人主导的。但是我们仔细看一下这些项目,都是一些总结性的项目。它们的价值可远比不了elasticsearch,SpringBoot这些改变世界的开源项目。

笔者翻到第二页,高兴的看到了一个不说改变世界,不说改变中国,起码在国内IT行业影响力非常巨大的开源项目。

没错,它就是Dubbo(https://github.com/apache/dubbo)。

关注我,回复“加群”加入微信讨论群


扫一扫,关注我

一起学习,一起进步


朕已阅 

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存