如果 Github 访问速度比较慢或者图片无法刷新出来的话,可以转移到码云查看,或者在线阅读。如果你要提交 issue 或者 pr 的话请到 Github 提交。
JavaGuide 的Star数量虽然比较多,但是它的价值和含金量一定是不能和 Dubbo、Nacos这些优秀的国产开源项目比的。希望国内可以出更多优秀的开源项目!
另外,希望大家对面试不要抱有侥幸的心理,打铁还需自身硬! 我希望这个文档是为你学习 Java 指明方向,而不是用来应付面试用的。加油!奥利给!
开始阅读之前必看 :
Sponsor
目录
- 目录
- Java
- 基础
- 容器
- 并发
- JVM
- 其他
- 网络
- 操作系统
- Linux
- 数据结构与算法
- 数据结构
- 算法
- 数据库
- MySQL
- Redis
- 系统设计
- 必知
- 常用框架
- 认证授权
- 分布式
- 大型网站架构
- 微服务
- 必会工具
- Git
- Docker
- 其他
- 面试指南
- Java学习常见问题汇总
- 资源
- Java程序员必备书单
- 实战项目推荐
- Github
- 待办
- 说明
- JavaGuide介绍
- 关于转载
- 如何对该开源文档进行贡献
- Contributor
- 作者
- 整理
- 校招巴士
Java
基础
基础知识系统总结:
重要知识点详解:
- 枚举 (很重要的一个数据结构,用好枚举真的没有那么简单!)
- Java 常见关键字总结:final、static、this、super!
- 什么是反射机制?反射机制的应用场景有哪些?
其他:
容器
并发
面试题总结:
必备知识点:
- 并发容器总结
- 线程池:Java线程池学习总结、拿来即用的线程池最佳实践
- 乐观锁与悲观锁
- 万字图文深度解析ThreadLocal
- JUC 中的 Atomic 原子类总结
- AQS 原理以及 AQS 同步组件总结
JVM
- Java内存区域
- JVM垃圾回收
- JDK 监控和故障处理工具
- 类文件结构
- 类加载过程
- 类加载器
- 【待完成】最重要的 JVM 参数指南(翻译完善了一半)
- JVM 配置常用参数和常用 GC 调优策略
- 【加餐】大白话带你认识JVM
其他
- I/O :BIO,NIO,AIO 总结
- Java 8 :Java 8 新特性总结、Java 8 学习资源推荐、Java8 forEach 指南
- Java9~Java14 : 一文带你看遍JDK9~14的重要新特性!
- Java编程规范:Java 编程规范以及优雅 Java 代码实践总结 、告别编码5分钟,命名2小时!史上最全的Java命名规范参考!
- 设计模式 :设计模式系列文章
网络
操作系统
Linux
数据结构与算法
数据结构
算法
数据库
MySQL
总结:
重要知识点:
Redis
- Redis 常见问题总结
- Redis 系列文章合集:
- 5种基本数据结构
- 跳跃表
- 分布式锁深入探究 、 Redlock分布式锁 、如何做可靠的分布式锁,Redlock真的可行么
- 神奇的HyperLoglog解决统计问题
- 亿级数据过滤和布隆过滤器
- GeoHash查找附近的人
- 持久化
- 发布订阅与Stream
- 史上最强【集群】入门实践教程
- Redis数据类型、编码、底层数据结构的关系看这篇
系统设计
必知
常用框架
Spring/SpringBoot
- Spring 常见问题总结
- SpringBoot 指南/常见面试题总结
- Spring/Spring常用注解总结!安排!
- Spring事务总结
- Spring IoC 和 AOP详解
- Spring中 Bean 的作用域与生命周期
- SpringMVC 工作原理详解
- Spring中都用到了那些设计模式?
MyBatis
认证授权
认证授权基础:搞清Authentication,Authorization以及Cookie、Session、Token、OAuth 2、SSO
JWT
SSO(单点登录)
SSO(Single Sign On)即单点登录说的是用户登陆多个子系统的其中一个就有权访问与其相关的其他系统。举个例子我们在登陆了京东金融之后,我们同时也成功登陆京东的京东超市、京东家电等子系统。相关阅读:SSO 单点登录看这篇就够了!
分布式
Elasticsearch(分布式搜索引擎)
提高搜索效率。常见于电商购物网站的商品搜索于分类。
代办......
RPC
让调用远程服务调用像调用本地方法那样简单。
消息队列
消息队列在分布式系统中主要是为了接耦和削峰。相关阅读: 消息队列总结 。
RabbitMQ:
RocketMQ:
Kafka:
API 网关
网关主要用于请求转发、安全认证、协议转换、容灾。
分布式id
分布式限流
分布式接口幂等性
ZooKeeper
前两篇文章可能有内容重合部分,推荐都看一遍。
其他
- 接口幂等性(代办):分布式系统必须要考虑接口的幂等性。
数据库扩展
读写分离、分库分表。
代办.....
大型网站架构
高并发
待办......
高可用
高可用描述的是一个系统在大部分时间都是可用的,可以为我们提供服务的。高可用代表系统即使在发生硬件故障或者系统升级的时候,服务仍然是可用的 。相关阅读: 《如何设计一个高可用系统?要考虑哪些地方?》 。
微服务
Spring Cloud
必会工具
Git
Docker
其他
面试指南
这部分很多内容比如大厂面经、真实面经分析被移除,详见完结撒花!JavaGuide面试突击版来啦!。
- 【备战面试1】程序员的简历就该这样写
- 【备战面试2】初出茅庐的程序员该如何准备面试?
- 【备战面试3】7个大部分程序员在面试前很关心的问题
- 【备战面试4】Github上开源的Java面试/学习相关的仓库推荐
- 【备战面试5】如果面试官问你“你有什么问题问我吗?”时,你该如何回答
- 【备战面试6】应届生面试最爱问的几道 Java 基础问题
- 【备战面试6】美团面试常见问题总结(附详解答案)
Java学习常见问题汇总
资源
Java程序员必备书单
实战项目推荐
Github
待办
- [ ] Netty 总结(---正在进行中---)
- [ ] 数据结构总结重构(---正在进行中---)
说明
开源项目在于大家的参与,这才使得它的价值得到提升。感谢🙏有你!
JavaGuide介绍
开源 JavaGuide 初始想法源于自己的个人那一段比较迷茫的学习经历。主要目的是为了通过这个开源平台来帮助一些在学习 Java 或者面试过程中遇到问题的小伙伴。
- 对于 Java 初学者来说: 本文档倾向于给你提供一个比较详细的学习路径,让你对于Java整体的知识体系有一个初步认识。另外,本文的一些文章 也是你学习和复习 Java 知识不错的实践;
- 对于非 Java 初学者来说: 本文档更适合回顾知识,准备面试,搞清面试应该把重心放在那些问题上。要搞清楚这个道理:提前知道那些面试常见,不是为了背下来应付面试,而是为了让你可以更有针对的学习重点。
Markdown 格式参考:Github Markdown格式,表情素材来自:EMOJI CHEAT SHEET。
利用 docsify 生成文档部署在 Github pages: docsify 官网介绍 ,另见《Guide哥手把手教你搭建一个文档类型的网站!免费且高速!》 。
Logo下的小图标是使用Shields.IO 生成的。
关于转载
如果你需要转载本仓库的一些文章到自己的博客的话,记得注明原文地址就可以了。
如何对该开源文档进行贡献
- 笔记内容大多是手敲,所以难免会有笔误,你可以帮我找错别字。
- 很多知识点我可能没有涉及到,所以你可以对其他知识点进行补充。
- 现有的知识点难免存在不完善或者错误,所以你可以对已有知识点进行修改/补充。
Contributor
下面是笔主收集的一些对本仓库提过有价值的pr或者issue的朋友,人数较多,如果你也对本仓库提过不错的pr或者issue的话,你可以加我的微信与我联系。下面的排名不分先后!
作者
JavaGuide: https://github.com/Snailclimb/JavaGuide
整理
www.baidu.com
校招巴士
校招巴士网站一个专注于大学生校招求职的平台!旨在分享互联网大厂内推、校招资讯、面经笔经、职场干货、简历技巧等,助力百万大学生校招求职!