笔记特点:条理清晰,含图像化表示更加易懂。
内容概要:包括 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(二叉树)
JVM
JVM 就是 java 虚拟机,它是一个虚构出来的计算机,可在实际的计算机上模拟各种计算机的功能。JVM 有自己完善的硬件结构,例如处理器、堆栈和寄存器等,还具有相应的指令系统。
-
线程
-
JVM 内存区域
-
JVM 运行时内存
-
垃圾回收与算法
-
JAVA 四种引用类型
-
GC 分代收集算法 VS 分区收集算法
-
GC 垃圾收集器
-
JAVA IO/NIO
-
JVM 类加载机制
JAVA 多线程并发
-
JAVA 并发知识库
-
JAVA 线程实现/创建方式
-
4 种线程池
-
线程生命周期(状态)
-
终止线程 4 种方式
-
sleep 与 wait 区别
-
start 与 run 区别
-
JAVA 后台线程
-
JAVA 锁
-
线程基本方法 4.1.11. 线程上下文切换
-
同步锁与死锁
-
线程池原理
-
JAVA 阻塞队列原理
-
CyclicBarrier、CountDownLatch、Semaphore 的用法
-
volatile 关键字的作用(变量可见性、禁止重排序)
-
如何在两个线程之间共享数据
Spring 原理
-
Spring 特点
-
Spring 核心组件
-
Spring 常用模块
-
Spring 主要包
-
Spring 常用注解
-
Spring 第三方结合
-
Spring IOC 原理
-
Spring APO 原理
-
Spring MVC 原理
-
Spring Boot 原理
-
JPA 原理
-
Mybatis 缓存
-
Tomcat 架构
微服务
刚开始进入软件行业时还是单体应用的时代,前后端分离的概念都还没普及,开发的时候需要花大量的时间在“强大”的 JSP 上面,那时候 SOA 已经算是新技术了。现在,微服务已经大行其道,有哪个互联网产品不说自己是微服务架构呢?
-
您对微服务有何了解?
-
微服务架构有哪些优势?
-
微服务有哪些特点?
-
设计微服务的最佳实践是什么?
-
微服务架构如何运作?
-
微服务架构的优缺点是什么?
-
单片,SOA 和微服务架构有什么区别?
-
在使用微服务架构时,您面临哪些挑战?
-
SOA 和微服务架构之间的主要区别是什么?
-
什么是凝聚力?
-
什么是耦合?
-
什么是 REST / RESTful 以及它的用途是什么?
Netty 与 RPC
-
Netty 原理
-
Netty 高性能
-
Netty RPC 实现
-
关键技术
-
核心流程
-
消息编解码
-
通讯过程
-
RMI 实现方式
网络
-
网络 7 层架构
-
TCP/IP 原理
-
TCP 三次握手/四次挥手
-
HTTP 原理
-
CDN 原理
-
分发服务系统
-
负载均衡系统
-
管理系统
日志
-
Slf4j
-
Log4j
-
LogBack
-
Logback 优点
-
ELK
Kafka
-
Kafka 概念
-
Kafka 数据存储设计
-
partition 的数据文件(offset,MessageSize,data)
-
数据文件分段 segment(顺序读写、分段命令、二分查找)
-
数据文件索引(分段索引、稀疏存储)
-
生产者设计
-
负载均衡(partition 会均衡分布到不同 broker 上)
-
批量发送
-
压缩(GZIP 或 Snappy)
-
消费者设计
Dubbo 方面
-
为什么要用 Dubbo?
-
Dubbo 的整体架构设计有哪些分层?
-
默认使用的是什么通信框架,还有别的选择吗?
-
服务调用是阻塞的吗?
-
一般使用什么注册中心?还有别的选择吗?
-
默认使用什么序列化框架,你知道的还有哪些?
-
服务提供者能实现失效踢出是什么原理?
-
服务上线怎么不影响旧版本?
-
Dubbo 推荐用什么协议?
Hbase
-
Hbase 概念
-
列式存储
-
Hbase 核心概念
-
Hbase 核心架构
-
Hbase 的写逻辑
-
HBase vs Cassandra
-
MongoDB
-
MongoDB 概念
-
MongoDB 特点
Cassandra
-
Cassandra 概念
-
数据模型
-
Cassandra 一致 Hash 和虚拟节点
-
Gossip 协议
-
数据复制
-
数据写请求和协调者
-
数据读请求和后台修复
-
数据存储(CommitLog、MemTable、SSTable)
-
二级索引(对要索引的 value 摘要,生成 RowKey)
-
数据读写
设计模式
-
设计原则
-
工厂方法模式
-
抽象工厂模式
-
单例模式
-
建造者模式
-
原型模式
-
适配器模式
-
装饰器模式
-
代理模式
-
外观模式
-
桥接模式
-
组合模式
-
享元模式
-
策略模式
-
模板方法模式
-
观察者模式
-
迭代子模式
-
责任链模式
-
命令模式
-
备忘录模式
数据库
-
存储引擎
-
索引
-
数据库三范式
-
数据库是事务
-
存储过程(特定功能的 SQL 语句集)
-
触发器(一段能自动执行的程序)
-
数据库并发策略
-
数据库锁
-
基于 Redis 分布式锁
-
分区分表
-
两阶段提交协议
-
三阶段提交协议
-
柔性事务
-
CAP
一致性算法
-
Paxos
-
Zab
-
Raft
-
NWR
-
Gossip
-
一致性 Hash
-
一致性 Hash 特性
-
一致性 Hash 原理
JAVA 算法
-
二分查找
-
冒泡排序算法
-
插入排序算法
-
快速排序算法
-
希尔排序算法
-
归并排序算法
-
桶排序算法
-
基数排序算法
-
剪枝算法
-
回溯算法
-
最短路径算法
-
最大的数组算法
-
最长公共子序算法
-
最小生成树算法
数据结构
-
栈(stack)
-
队列(queue)
-
链表(Link)
-
散列表(Hash Table)
-
排序二叉树
-
红黑树
-
B-TREE
-
位图
Hadoop
-
Hadoop 概念
-
HDFS
-
Client
-
NameNode
-
Secondary NameNode
-
DataNode
-
MapReduce
-
JobTracker
-
TaskTracker
-
Task
-
Reduce Task 执行过程
-
Hadoop MapReduce 作业的生命周期
-
作业提交与初始化
-
任务调度与监控。
-
任务运行环境准备
-
任务执行
-
作业完成
Spark
-
Spark 概念
-
核心架构
-
核心组件
-
SPARK 编程模型
-
SPARK 计算模型
-
SPARK 运行流程
-
SPARK RDD 流程
-
SPARK RDD
Storm
-
Storm 概念
-
集群架构
-
Nimbus(master-代码分发给 Supervisor)
-
Supervisor(slave-管理 Worker 进程的启动和终止)
-
Worker(具体处理组件逻辑的进程)
-
Task
-
ZooKeeper
-
编程模型(spout->tuple->bolt)
-
opology 运行
-
Storm Streaming Grouping
-
ResourceManager
-
NodeManager
-
ApplicationMaster
-
YARN 运行流程
云计算
-
SaaS
-
PaaS
-
IaaS
-
Docker
-
Openstack
-
Namespaces
-
进程(CLONE_NEWPID 实现的进程隔离)
-
Libnetwork 与网络隔离
-
资源隔离与 CGroups
-
镜像与 UnionFS
-
存储驱动
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!以下是目录截图: