笔记作者:来自于阿里P8级架构师: Mark
笔记特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 Java 集合、JVM、多线程、并发编程、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等大厂面试题等、等技术栈!
由于整个文档比较全面,内容比较多,篇幅不允许,下面以截图方式展示 。如有需要获取资料文档的朋友可以跳转文章末尾
JAVA集合
- 接口继承关系和实现
- List
- ArrayList(数组)
- Vector(数组实现、线程同步)
- LinkList(链表)
- Set
- HashSet(Hash表)
- TreeSet(二叉树)
![74af153144396043f9023a406aa0ebe0.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7f3cdd9a61ec39ee21655f8d75dd2218.jpeg)
![80931de9a7c034c7e9a91c6574866801.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c325a574c48d3b2e8869cf5824cfd9b8.jpeg)
JVM
JVM就是java虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。
- 线程
- JVM内存区域
- JVM运行时内存
- 垃圾回收与算法
- JAVA 四种引用类型
- GC分代收集算法 VS 分区收集算法
- GC垃圾收集器
- JAVA IO/NIO
- JVM 类加载机制
![1bdaf05459fada4756c602cf17a9bc1b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/8edbd1430335c70bb15ff9ddf83be041.jpeg)
![944026969f934b3c3b3ff09328361aeb.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c6a8e087375f32b3e055310e2ee703d6.jpeg)
JAVA多线程并发
- JAVA并发知识库
- JAVA线程实现/创建方式
- 4种线程池
- 线程生命周期(状态)
- 终止线程4种方式
- sleep与wait 区别
- start与run区别
- JAVA后台线程
- JAVA锁
- 线程基本方法4.1.11. 线程上下文切换
- 同步锁与死锁
- 线程池原理
- JAVA阻塞队列原理
- CyclicBarrier、CountDownLatch、Semaphore的用法
- volatile关键字的作用(变量可见性、禁止重排序)
- 如何在两个线程之间共享数据
![dbf6a1dad4a4e86b07daa353d3b2dc4d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f944401106e914cb3caa481a2c865f4c.jpeg)
![c37e90f5aa010678443c2d0d62820c82.jpeg](https://i-blog.csdnimg.cn/blog_migrate/5d3bdba7ffefa1c91cf4a4b539acf70d.jpeg)
Spring 原理
- Spring 特点
- Spring 核心组件
- Spring 常用模块
- Spring 主要包
- Spring 常用注解
- Spring第三方结合
- Spring IOC原理
- Spring APO原理
- Spring MVC原理
- Spring Boot原理
- JPA原理
- Mybatis缓存
- Tomcat架构
![563188e2834eb08748371167d29d1e5c.jpeg](https://i-blog.csdnimg.cn/blog_migrate/d9e98ea39534948054557c05f82e8f53.jpeg)
![54ea4025bb14ae5b326819b4fecc9514.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a5ad1704520d74017f8158eaf4bea686.jpeg)
微服务
刚开始进入软件行业时还是单体应用的时代,前后端分离的概念都还没普及,开发的时候需要花大量的时间在“强大”的JSP上面,那时候SOA已经算是新技术了。现在,微服务已经大行其道,有哪个互联网产品不说自己是微服务架构呢?
- 您对微服务有何了解?
- 微服务架构有哪些优势?
- 微服务有哪些特点?
- 设计微服务的最佳实践是什么?
- 微服务架构如何运作?
- 微服务架构的优缺点是什么?
- 单片,SOA 和微服务架构有什么区别?
- 在使用微服务架构时,您面临哪些挑战?
- SOA 和微服务架构之间的主要区别是什么?
- 什么是凝聚力?
- 什么是耦合?
- 什么是 REST / RESTful 以及它的用途是什么?
![b20839dbc960d0a9f466f0597bfc03fc.jpeg](https://i-blog.csdnimg.cn/blog_migrate/5db1e6d35a33ee0822697413f3a46bd2.jpeg)
![9214a6b3d9e2d116575aa006e009178b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/5e6431e558c94dfc58b3174cd81c8055.jpeg)
Netty 与RPC
- Netty 原理
- Netty 高性能
- Netty RPC实现
- 关键技术
- 核心流程
- 消息编解码
- 通讯过程
- RMI实现方式
![01af4a92c494ddd64dbd55ce666a65e1.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c9cb56fbcc1eeb37518151a755b52e14.jpeg)
网络
- 网络7层架构
- TCP/IP原理
- TCP三次握手/四次挥手
- HTTP原理
- CDN 原理
- 分发服务系统
- 负载均衡系统
- 管理系统
![6d59e87b6fe5440d6f4b884475e89608.jpeg](https://i-blog.csdnimg.cn/blog_migrate/3afb1a5e0ab3f3a3935ddc8977ad5cc0.jpeg)
![2da5df52080f2bea16b1cb5e855f9719.jpeg](https://i-blog.csdnimg.cn/blog_migrate/53f81a5e5857d083b7098e9a3942c7f4.jpeg)
日志
- Slf4j
- Log4j
- LogBack
- Logback优点
- ELK
![acee6b1d35b501b87929bcce19c5952b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/4d9e19a41e11a0da2e79583963d2fe20.jpeg)
![42acf12a5875964229a6a6f8bea7c015.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e0d77068c847a3917654c1c46cd55a06.jpeg)
Kafka
- Kafka概念
- Kafka数据存储设计
- partition的数据文件(offset,MessageSize,data)
- 数据文件分段segment(顺序读写、分段命令、二分查找)
- 数据文件索引(分段索引、稀疏存储)
- 生产者设计
- 负载均衡(partition会均衡分布到不同broker上)
- 批量发送
- 压缩(GZIP或Snappy)
- 消费者设计
![262b682a6cc47bc946c6fbaeed8ad05d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f10a6eefdf807d483d450352b1aaaa45.jpeg)
![efed7c04179a9d0cd1a603d0374c0690.jpeg](https://i-blog.csdnimg.cn/blog_migrate/5cef772507209de9802f29d01dcff9af.jpeg)
Dubbo方面
- 为什么要用 Dubbo?
- Dubbo 的整体架构设计有哪些分层?
- 默认使用的是什么通信框架,还有别的选择吗?
- 服务调用是阻塞的吗?
- 一般使用什么注册中心?还有别的选择吗?
- 默认使用什么序列化框架,你知道的还有哪些?
- 服务提供者能实现失效踢出是什么原理?
- 服务上线怎么不影响旧版本?
- Dubbo 推荐用什么协议?
![69a73e3daf0677aab52b66dc5b1e4aa0.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0f8723ca3d558e66264eb5c0312a8918.jpeg)
Hbase
- Hbase概念
- 列式存储
- Hbase核心概念
- Hbase核心架构
- Hbase的写逻辑
- HBase vs Cassandra
- MongoDB
- MongoDB概念
- MongoDB特点
![edf31899875d14f2bee60fc3c8116350.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a1f1c6e616b5569795f04a46036e8b77.jpeg)
![1639114c702a801f585596f8e5838698.jpeg](https://i-blog.csdnimg.cn/blog_migrate/bdd828f5faaae35052ea3c992024d102.jpeg)
Cassandra
- Cassandra概念
- 数据模型
- Cassandra一致Hash和虚拟节点
- Gossip协议
- 数据复制
- 数据写请求和协调者
- 数据读请求和后台修复
- 数据存储(CommitLog、MemTable、SSTable)
- 二级索引(对要索引的value摘要,生成RowKey)
- 数据读写
![f857020c0d58b3f24891eff4550cd04e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f356fee9631ddad8025e277c8a0e718b.jpeg)
![3fef3cfa2b36d4bb81ffd33c23275b87.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e2422f0734bf60d5e4b0c25153ae2d32.jpeg)
设计模式
- 设计原则
- 工厂方法模式
- 抽象工厂模式
- 单例模式
- 建造者模式
- 原型模式
- 适配器模式
- 装饰器模式
- 代理模式
- 外观模式
- 桥接模式
- 组合模式
- 享元模式
- 策略模式
- 模板方法模式
- 观察者模式
- 迭代子模式
- 责任链模式
- 命令模式
- 备忘录模式
![723298d655f30573494d2a5e1b0e6892.jpeg](https://i-blog.csdnimg.cn/blog_migrate/bed7bf0e8b1dd105fe5566ee56f3b339.jpeg)
数据库
- 存储引擎
- 索引
- 数据库三范式
- 数据库是事务
- 存储过程(特定功能的SQL 语句集)
- 触发器(一段能自动执行的程序)
- 数据库并发策略
- 数据库锁
- 基于Redis分布式锁
- 分区分表
- 两阶段提交协议
- 三阶段提交协议
- 柔性事务
- CAP
![d208e05705ee332d39c2e9125dbfd6c7.jpeg](https://i-blog.csdnimg.cn/blog_migrate/1b190b22c2bf62c8dbfc2d4f0dbcbc8f.jpeg)
![44fcb889ea0f57fea4c83612ce54ed4f.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f7834be5e91b8c3dd1a7d1ebd32e54f1.jpeg)
一致性算法
- Paxos
- Zab
- Raft
- NWR
- Gossip
- 一致性Hash
- 一致性Hash特性
- 一致性Hash原理
![398fe71ab83169b2214e9077ed311a50.jpeg](https://i-blog.csdnimg.cn/blog_migrate/74a598b3fbb3d4c1737dcd2cc4dd2d9d.jpeg)
![cbc966983201470377beece4a8904a69.jpeg](https://i-blog.csdnimg.cn/blog_migrate/1d6c3a94578ef03009885ed9ae27b983.jpeg)
JAVA算法
- 二分查找
- 冒泡排序算法
- 插入排序算法
- 快速排序算法
- 希尔排序算法
- 归并排序算法
- 桶排序算法
- 基数排序算法
- 剪枝算法
- 回溯算法
- 最短路径算法
- 最大的数组算法
- 最长公共子序算法
- 最小生成树算法
![d50f543458d2c639507f7bd32d16853e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/319645026066adb74e76e8e3e4ee7f68.jpeg)
![d5dda570cc37e9c5bf1bafd7ff894c10.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a06b31c2b92b713f6772f221567d1505.jpeg)
数据结构
- 栈(stack)
- 队列(queue)
- 链表(Link)
- 散列表(Hash Table)
- 排序二叉树
- 红黑树
- B-TREE
- 位图
![69988f14733b34e9f1b5d5858d847706.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7d367c677c279653c2df0b78df6deb92.jpeg)
![483bdebe649e4c4aac209be497e07f3a.jpeg](https://i-blog.csdnimg.cn/blog_migrate/45ef54daac4f2aa330aa8e40b3b708ec.jpeg)
Hadoop
- Hadoop概念
- HDFS
- Client
- NameNode
- Secondary NameNode
- DataNode
- MapReduce
- JobTracker
- TaskTracker
- Task
- Reduce Task 执行过程
- Hadoop MapReduce 作业的生命周期
- 作业提交与初始化
- 任务调度与监控。
- 任务运行环境准备
- 任务执行
- 作业完成
![2b7681973c39e6126f511269a4fedff5.jpeg](https://i-blog.csdnimg.cn/blog_migrate/ea15c7fa586a4d8f3cbcc5590054e019.jpeg)
![08c1de08f84db49f2b4de1fb767aa7bc.jpeg](https://i-blog.csdnimg.cn/blog_migrate/50a55d42b104de49eaa5c46b98b0cb71.jpeg)
Spark
- Spark概念
- 核心架构
- 核心组件
- SPARK编程模型
- SPARK计算模型
- SPARK运行流程
- SPARK RDD流程
- SPARK RDD
![a13ce04dd1b7690b5c1004a31805b3c2.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0d3365f5174ffc6f1ac27864c037c0d5.jpeg)
![b3139fa8ecd6c49b614fe2caf534179e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/49e617e6941889d03ff8a0aeb9646b57.jpeg)
Storm
- Storm概念
- 集群架构
- Nimbus(master-代码分发给Supervisor)
- Supervisor(slave-管理Worker进程的启动和终止)
- Worker(具体处理组件逻辑的进程)
- Task
- ZooKeeper
- 编程模型(spout->tuple->bolt)
- opology运行
- Storm Streaming Grouping
- ResourceManager
- NodeManager
- ApplicationMaster
- YARN运行流程
![60eb8859dd2c08ddb9b7116e338c8520.jpeg](https://i-blog.csdnimg.cn/blog_migrate/442d88024cee68687018236ba433a31d.jpeg)
![adb992c92f2aa6a830f7dfde9253c669.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a9c6b938c94528dc877c15d6e72f7923.jpeg)
云计算
- SaaS
- PaaS
- IaaS
- Docker
- Openstack
- Namespaces
- 进程(CLONE_NEWPID 实现的进程隔离)
- Libnetwork与网络隔离
- 资源隔离与CGroups
- 镜像与UnionFS
- 存储驱动
![d8d04f6e8d2f26048e5a493eb7de4d0c.jpeg](https://i-blog.csdnimg.cn/blog_migrate/2d4f5829425120e50c37599488a80f94.jpeg)
![64bb8c2f98795e6bc75e7fa58f939738.jpeg](https://i-blog.csdnimg.cn/blog_migrate/a696e70988d95703e28f3a503429dbb9.jpeg)
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图:
![39060833647e977032fc96816daf939e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/cbc4ba51189e331aea310ae67e5b5b42.jpeg)
需要完整版PDF学习资源请扫描下方名片100%获取免费下载方式!
👇👇点击下方名片👇👇