本
文
摘
要
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为例:Java内存区域JVM垃圾回收JDK 监控和故障处理工具类文件结构类加载过程类加载器【待完成】最重要的 JVM 参数指南(翻译完善了一半)JVM 配置常用参数和常用 GC 调优策略【加餐】大白话带你认识JVM3. 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/RxJava8. 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/okhttpJava项目和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这些改变世界的开源项目。