写于之前:
1、Java技术体系庞大且繁杂,各公司的面试要求和侧重点也会有所不同,本文仅列举了笔者认为比较常见及重要的知识点,对应的链接内容也是笔者网上找的相对比较靠谱的解答。
2、以笔者多年大厂的工作经验,如果面试者能够很好地掌握如上的内容,理论上从技术知识储备来说胜任大厂的高级Java开发应该是没有问题的,小公司的架构师技术要求应该也是达标的。
3、实际面试不完全是技术能力的要求,一般公司还会考察学历、工作经历背景、项目经验、沟通表达能力、稳定性等方面,所以不仅需要深入地掌握技术知识、还需要能够灵活地进行运用,并最好有相关实践经验,同时对于软实力也需要关注。
4、本文是笔者近期看新机会整理的知识点,受限于时间和个人知识水平,难免有错漏或不当之处,欢迎批评指正,也欢迎交流沟通。
通用知识
数据结构
二叉树
https://www.jianshu.com/p/44f7d9bbebfe
红黑树
https://segmentfault.com/a/1190000012728513
B树和B+树
https://cloud.tencent.com/developer/news/367683
最大堆/最小堆
https://baike.baidu.com/item/%E6%9C%80%E5%B0%8F%E5%A0%86/9139372
算法
排序算法
一致性hash算法
https://zhuanlan.zhihu.com/p/34985026
https://blog.csdn.net/cywosp/article/details/23397179/
二叉树的遍历实现算法
https://www.jianshu.com/p/36b043bf0f4c
https://blog.csdn.net/shufac/article/details/26979517
Java基础
集合
常用集合及底层实现
https://blog.csdn.net/smxjant/article/details/82899430
hashmap 1.8和1.7的区别,为什么线程不安全
https://www.jianshu.com/p/8324a34577a0
CuncurrentHashMap内部实现
https://blog.csdn.net/u011716215/article/details/78607246
TreeMap实现
https://blog.csdn.net/qq_42022528/article/details/82932591
priority Queue
https://www.jianshu.com/p/b308d23f3775
BlockingQueue实现
https://www.cnblogs.com/KingIceMou/articles/8075343.html
IO
bio,aio,nio的区别及应用场景
https://www.jianshu.com/p/ef418ccf2f7d
nio的整体介绍
reactor模型
https://juejin.im/post/5b4570cce51d451984695a9b
java io的设计模式
https://blog.csdn.net/tianyue168/article/details/5786642
多线程
线程的状态及切换
https://www.jianshu.com/p/ce1a33b0d7e5
线程,进程,协程的区别
https://blog.csdn.net/WJWFighting/article/details/82589177
内存模型看线程安全的问题
https://m.toutiao.com/i6694579428191633932/
synchronized的实现原理
https://www.jianshu.com/p/70421c088275
volitale实现原理
schronized和lock优缺点比较
https://cloud.tencent.com/developer/article/1396207
死锁的产生及实现示例
https://m.runoob.com/java/thread-deadlock.html
线程池的关键参数及作用
https://baijiahao.baidu.com/s?id=1595521551376533549
合理的线程数如何评估
http://ifeve.com/how-to-calculate-threadpool-size/
threadlocal的实现原理及应用场景
https://www.jianshu.com/p/69ae8c213b30
轻量级锁,偏量锁,重量级锁
cas的实现原理及应用点
https://blog.csdn.net/u014082714/article/details/50825597
aqs的底层实现及应用场景
https://blog.csdn.net/zzpueye/article/details/90047556
automic原子操作类实现原理
https://www.jianshu.com/p/84c75074fa03
Java进阶
JVM
Java内存模型
https://blog.csdn.net/laomo_bible/article/details/83067810
类加载机制与双亲委派模式
https://www.jianshu.com/p/ced09a741388
GC算法和收集器
https://www.jianshu.com/p/2d848c14d40b
强引用,软引用,弱引用,虚引用
https://www.jianshu.com/p/70e1900c1b33
JVM调优经验
https://blog.csdn.net/hjxgood/article/details/53896229
http://virtual.51cto.com/art/201902/592177.htm
调优工具
https://www.jianshu.com/p/a75c1253fc11
线上问题定位解决方法(oom,full gc)
https://blog.csdn.net/weiquanaishiyao/article/details/83578999
Web
网络
select poll epoll区别
https://www.cnblogs.com/jeakeven/articles/5435916.html
http协议
https://hit-alibaba.github.io/interview/basic/network/HTTP.html
tcp协议
https://hit-alibaba.github.io/interview/basic/network/TCP.html
session与 cookie的区别
https://blog.yoodb.com/yoodb/article/detail/1492
数据库
Mysql
数据库常用的执行引擎和区别
https://blog.csdn.net/longjialin93528/article/details/80693748
事务的隔离级别,对应解决的问题
https://baijiahao.baidu.com/s?id=1611918898724887602
乐观锁和悲观锁区别,使用场景,实现方式
https://zhuanlan.zhihu.com/p/63768500
聚集索引,非聚集索引,覆盖索引
https://blog.csdn.net/itguangit/article/details/82145322
数据库优化经验
https://juejin.im/post/5c6b9c09f265da2d8a55a855
sql优化经验
https://blog.csdn.net/youthsunshine/article/details/53465847
分库分表的应用场景及实现方式
https://www.infoq.cn/article/key-steps-and-likely-problems-of-split-table
跨库分页的实现方式
大表分页查询优化方案
redis
支持的数据类型及如何选用
https://www.cnblogs.com/mrhgw/articles/6278619.html
https://segmentfault.com/a/1190000012374621
redis为什么设计为单线程且性能还很好
https://www.cnblogs.com/yangqiong1989/articles/10745329.html
https://m.toutiao.com/i6694407063117758980/
持久化机制及优缺点
http://www.chenxm.cc/article/38.html
事务处理
高可用如何保证
https://www.jianshu.com/p/c2abf726acc7
过期策略,淘汰策略及实现机制
https://blog.csdn.net/HUXU981598436/article/details/66543494
缓存穿透,雪崩,击穿处理
https://mp.weixin.qq.com/s/SQQy6NKvoAgIaeAjzkRpDw
操作系统
Linux
cpu过高如何定位线程
https://www.jianshu.com/p/45c6bcb85934
用户态和内核态
https://blog.csdn.net/jek123456/article/details/80448967
监控命令及工具
https://www.cnblogs.com/defias/p/3426976.html
https://www.cnblogs.com/hanxiaobei/p/5514544.html
应用框架
Spring
spring bean生命周期
https://www.jianshu.com/p/0c8a1b5e3808
spring ioc实现原理及作用
https://blog.csdn.net/lhx13636332274/article/details/81123369
spring aop实现原理及应用场景
https://blog.csdn.net/a772304419/article/details/78958999
事务管理的实现机制
https://www.liangzl.com/get-article-detail-16667.html
https://zhuanlan.zhihu.com/p/37113044
Spring MVC
DispatchServlet的整体处理流程
https://www.jianshu.com/p/5807fd45b86d
interceptor的使用和应用场景
https://blog.csdn.net/cheng_fangang/article/details/49995811
面试题
https://baijiahao.baidu.com/s?id=1623441037596227099
知识点
https://www.iteye.com/blogs/subjects/kaitao-springmvc
Spring Boot
自动配置实现原理
https://www.jianshu.com/p/4a6094542f45
面试题
https://www.songma.com/m/news/txtlist_i24822v.html
Spring cloud
spring cloud常用的组件及对应作用
https://blog.csdn.net/qiuyinthree/article/details/80408751
netflix zuul的应用场景及作用
https://m.toutiao.com/i6685540072659354126/
netflix eureka的服务注册发现机制
https://blog.csdn.net/qiansg123/article/details/80127590
netflix eureka的高可用及故障处理机制
http://blog.didispace.com/springcloud6/
https://cloud.tencent.com/developer/article/1354059
netflix ribbon的应用场景和作用
https://blog.csdn.net/luanlouis/article/details/83060310
netflix feign的应用场景和作用
https://blog.csdn.net/weixin_40663800/article/details/88117920
netflix hystrix的实现原理及应用场景
https://www.jianshu.com/p/e07661b9bae8
spring cloud config的应用场景
https://springcloud.cc/spring-cloud-config.html
spring cloud sleuth/zipkin的应用场景
https://blog.csdn.net/zhllansezhilian/article/details/83001870
dubbo
服务注册发现机制
https://blog.csdn.net/qq_27529917/article/details/80632078
高可用机制
https://www.cnblogs.com/zjfjava/articles/9704417.html
zookeeper
zab协议
http://blog.jobbole.com/104985/
面试题
https://segmentfault.com/a/1190000014479433?utm_medium=referral&utm_source=tuicool
Mybatis
通用分页实现
https://blog.csdn.net/itcats_cn/article/details/81586724
批量操作
https://blog.csdn.net/w605283073/article/details/83064000
动态sql
http://www.mybatis.org/mybatis-3/zh/dynamic-sql.html
一级缓存和二级缓存
https://blog.csdn.net/weixin_36380516/article/details/73194758
消息队列
队列整体设计
消息队列应用场景
https://zhuanlan.zhihu.com/p/60289581
Jms整体介绍
https://baike.baidu.com/item/JMS/2836691
常用的消息队列中间件及比较
事务性消息实现机制
https://yq.aliyun.com/articles/596022
消息重复消费
消息的持久化机制
https://blog.csdn.net/haoran_10/article/details/88330065
消息队列的高可用保证
https://www.jianshu.com/p/6940f7e1d962
架构设计
设计思想
设计模式
https://m.runoob.com/design-pattern/design-pattern-tutorial.html
微服务架构
SOA架构
https://baijiahao.baidu.com/s?id=1566727073842273
分布式
分布式session共享问题
https://blog.csdn.net/u010902804/article/details/81182223
负载均衡的实现原理与实践
https://zhuanlan.zhihu.com/p/51041804
https://www.cnblogs.com/saixing/articles/6730201.html
分布式事务的解决方案
分布式应用追踪实现方案及原理
分布式全局唯一seq id生成方案及优缺点比较
分布式锁实现
https://www.jianshu.com/p/4e75e17e960a
大流量
限流算法及实现手段
https://www.infoq.cn/article/UhixHoWebU_TYJewJwcL
削峰填谷方案
缓存实现方案及应用场景
http://www.dalbll.com/Group/Topic/ArchitecturedDesign/5205
缓存数据跟数据库数据一致性保证
cache aside pattern:https://www.colabug.com/3565367.html
https://www.cnblogs.com/rjzheng/p/9041659.html
搜索
lucence
https://blog.csdn.net/yiluoak_47/article/details/18963909
solr与elaticsearch
https://blog.csdn.net/qq_33314107/article/details/79481930