java开发知识导图(超级全,附上解析!)
2024-09-22 22:42:34 0 举报
AI智能生成
这是一个java开发的思维导图,不单单只局限于java,还有很多Linux、MySQL、redis、clickhouse的知识,绝不会亏。
作者其他创作
大纲/内容
效率低的原因
键值不可以为null
与hashmap的区别
fail-fast和fail-safe
HashTable
ConcurrentHashmap
mutex
操作加上synchronized
synchronizedMap
1.7头插
1.8尾插
链表
红黑树
hash碰撞
底层结构
rehash
初始化大小
扩容方式
负载因子
扩容机制
线程不安全
重写hashcode和euqals
hashmap
Map
ArrayList
set
vector
linkedlist
List
java集合
内存泄漏
底层实现原理
ThreadLocal
Callable和Runnable
参数
运行机制
策略
有哪些线程池
阻塞队列
设置线程池
线程池
多线程
简单工厂
工厂模式
抽象工厂
单例模式
建造者模式
原型模式
创建型模式
开闭原则
依赖倒转原则
里氏替换原则
接口隔离原则
迪米特原则
合成复用原则
六大原则
适配器模式
装饰器模式
代理模式
桥接模式
结构型模式
策略模式
模板方法
观察者模式
责任链
迭代器模式
行为型模式
设计模式
StackOverFlowError
OutOfMemoryError
VrtulMachineError
NoClassDefFoundError
Error
NullPointerException
ArithmeticException
IndexOutOfBoundsException
ClassCastException
RuntimeException
运行时异常
EOFException
FileNoFoundException
IOException
classNotFoundException
编译时异常
Execption
Throwable
异常
双亲委派机制
类加载顺序
标记清除
标记复制
标记整理
标记过程
多标
漏标
算法缺陷
三色标记
垃圾回收算法
引用计数
可达性分析
判断一个对象是否存活
native方法的局部变量表
native类信息
本机方法栈
局部变量
对象的引用
虚拟机栈
执行的字节码指令位置
程序计数器
类信息
静态变量
常量
方法区
对象实例
堆
组成成分
JVM
实现原理
标志位
ABA问题
循环开销
单对象访问
存在问题
JUC包的使用
CAS
乐观锁
互斥锁
自旋锁
读写锁
hashcode排序
银行家算法
以确定的顺序获得锁
超时放弃
预防死锁
剥夺资源
撤销进程
解除死锁
Jstack命令
Jconsole工具
死锁检测
怎么解决死锁
互斥条件
请求与保持条件
不剥夺条件
循环等待条件
产生死锁的条件
死锁
可见性
java内存模型
指令重排序
happen-before
内存屏障
volatile
用法
monitor
队列
匿名偏向和非匿名偏向
偏向锁
轻量级锁
重量级锁
锁升级
synchronized
AQS
同步队列
条件队列
condition
ReentrantLock
悲观锁
锁
token
session
怎么保证接口的安全性
Java基础
Quorum机制
Paxos
Raft
Zab
分布式算法
CAP
BASE
分布式理论
XA模型
XA接口规范
性能问题
协调者单点故障问题
丢失消息导致数据不一致问题
缺点
提交事务请求
成功执行
中断请求
执行事务请求
两阶段提交
2PC
CanCommit
PreCommit
DoCommit
三阶段提交
2PC和3PC区别
3PC
XA协议的实现
XA的限制
刚性事务
MQ事务消息方案
本地消息表方案
异步确保型事务
最大努力通知
通知型事务
map的查找
map的扩容
map的底层数据结构
map的用法
map
如何扩容
如何查找
slice底层结构
slice的用法
slice
channel的底层数据结构
有缓冲chan和无缓冲chan
防止channel死锁、阻塞
对已关闭的channel进行读写
channel
如何判断一个对象是分配在堆上还是栈上
函数返回局部变量的指针是否安全
内存逃逸分析
内存池
内存管理
go内存结构
垃圾回收机制
go垃圾回收
GMP模型
什么是协程
goroutine相关操作函数
goroutine什么时候会发生内存泄露,如何避免
goroutime调度
正常模式、饥饿模式
atomic
go
TCC与2PC的不同
TCC
SAGA
补偿型事务
柔性事务
事务执行流程
充值业务场景
电商下单场景
AT模式
TCC模式
SAGA模式
XA模式
四种模式
Seata
强一致性场景
弱一致性场景
最终一致性场景
如何解决分布式事务问题?
分布式事务
分布式
HDFS
MapReduce
YARN
Hadoop
Hive
HBase
RDD
SQL
Streaming
Spark
Storm
Flink
流式计算
分布式链路
向上日志统计
利用优先队列统计
QPS是多少,如何统计
项目
内存分段
内存分页
段页式内存
Linux内存管理
虚拟内存
DMA
mmap
sendfile
PageCache
零拷贝
进程的状态
进程的结构
管道
消息队列
共享内存
信号量
信号
socket
进程间通信
进程
waiting
线程的状态
用户线程
volatile共享内存
wait/notify、join
消息传递
PipeWriter、PipeReader
管道流
线程间通信
内核线程
轻量级线程
线程
先来先服务调度算法
最短作业优先调度算法
高响应比优先调度算法
时间片轮转调度算法
最高优先级调度算法
多级反馈队列调度算法
进程的调度算法
最佳页面置换算法(OPT)
先进先出置换算法(FIFO)
最近最久未使用置换算法(LRU)
时钟页面置换算法(LOCK)
最不常用置换算法(LFU)
内存页面置换算法
先来先服务算法
最短寻道时间优先算法
扫描算法
循环扫描算法
LOOK与C-LOOK算法
磁盘调度算法
select、poll、epoll
单Reactor 单进程/单线程
单Reactor 多进程/多线程
多Reactor 多进程/多线程
Reactor
Proactor
IO多路复用
计算机系统
慢启动
拥塞避免
拥塞发生
快速恢复
拥塞控制
超时重传
SACK
D-SACK
快速重传
重传机制
发送窗口
接收窗口
滑动窗口
流量控制
半连接队列
全连接队列
连接队列
三次握手
time wait状态过多情况
为什么time wait的等待时间是2MSL
优化time wait
time wait
close wait状态过多情况
close wait
为什么抓包抓到的TCP挥手是三次
为什么挥手需要四次
四次挥手
与UDP的区别
SYN泛洪
发送端
接收端
原因
解决
粘包问题
TCP
Ping
解析URL
Host查询
DNS解析过程
DNS发生在什么阶段
DNS挟持
DNS查询
请求行
请求头
空行
请求正文
HTTP请求
应用层处理
TCP报文格式
TCP分割数据
传输层处理
IP报文格式
网路层处理
MAC头部
ARP协议
ARP缓存
MAC报文
数据链路层处理
网卡
物理层处理
网络包接收
经过交换机
路由器与交换机的区别
路由器接收包
查询路由表
路由器发送
经过路由器
处理请求
状态行
响应头
响应正文
HTTP响应
浏览器显示
输入url的过程
物理层
数据链路层
网络层
传输层
会话层
表示层
应用层
IOS模型
TCP/IP模型
网络模型
非对称加密
对称加密
SSL连接过程
获取公钥的过程
CA签发证书的过程
客户端检验数字证书
中间人攻击
RAS
DH秘钥交换
ECDHE
加密算法
https
http 1.0
http 1.1
http 2.0
http 3.0
1xx
2xx
3xx
4xx
5xx
状态码
请求
响应
请求响应
分布式session
跨域
数据格式
cookie
http
ipv4
ipv6
子网掩码
ip
计算机网络
内存页
顺序写
page cache
reactor
数据压缩
分区并发
memory mapper files
底层结构实现
spring-kafka
实现延时队列的方案
顺序读写
重复消费
保证不丢失数据
kafka
rocketMQ
倒排索引
底层数据结构
Logstash
go Elasticsearch
canal
数据同步
Elasticsearch
http server
stroe
raft
wal
组成
etcd
中间件
依赖注入的三种方式
BeanFactory和ApplicationContext的区别
循环依赖
Bean的生命周期
Bean的作用范围
Bean的自动装配
Bean的加载流程
单例Bean是线程安全的吗
Spring是怎么解决线程并发安全的
bean
IOC
AOP相关名词
AspectsJ
静态代理
handlerinvocation接口
CGlib
动态代理
实现方法
通知类型
AOP
事务的种类和区别
事务的隔离级别
事务的传播行为
事务的实现方式和实现原理
事务
一、二级缓存
#{}和${}的区别
接口方法能否重载
常见的标签
Mybatis
spring中的设计模式
springboot自动装配原理
SpringMVC处理流程
注解失效
注解
Spring
BIO
NIO
AIO
IO模型
Netty的线程模型
Netty零拷贝
执行流程
Channel
EventLoopGroup和EventLoop的关系
EventLoop
ChannelFuture
ChannelHandler和ChannelPipelin
Bootstrap和ServerBootstrap
核心组件
长连接
心跳机制
启动流程
Netty
服务暴露
服务引入
服务调用
SPI机制
负载均衡
RPC原理
序列化协议
dubbo
Java框架
ACID
行锁
表锁
MVVC
锁机制
原理
搭建方式
主从复制模式
宕机解决
代码层面实现
主从复制
redo log
undo log
Mysql是怎么存取数据的
持久化
MyIsam不支持事务,InnoDB支持事务
InnoDB支持外键,MyIsam不支持
索引结构不一样
锁粒度不一样
MyIsam和InnoDB的区别
PREIMARY KEY
UNIQUE KEY
联合索引
hash索引
分类
索引失效情况
b+树
索引
优化limit分页
%key
key%
%key%
模糊匹配
避免使用not in 使用not exists
避免使用or 使用union
避免null值判断 给字段加0判断
避免在等号左边使用表达式和函数操作
联合索引的顺序
避免查询字段时进行隐式转换
排查索引没起做用的情况
慢查询
type
key
rows
Extra
Explain分析细节
mmr
修改的LRU算法
buffer pool
change buffer
性能提升
mysql
int
sds
命令
String
ziplist
linkedList
intSet
dist
Set
字典
Rehash过程
扩容和缩容机制
Hash
跳表+dist
Zset
数据结构
save
bgsave
RDB
bgrewriteaof
AOF
混合持久化
代码层面
cannl
mysql数据同步
单线程模型
多线程操作
线程模型
数据持久化
定时删除
惰性删除
定期删除
Redis采用的过期删除策略
内存淘汰策略
AOF、RDB和复制模式处理过期键
过期清除策略
Aop操作Redis
缓存穿透
缓存击穿
缓存雪崩
BloomFilter
锁误解除
setnx
分布式锁
数据一致性
工作原理
优缺点
Sentinel模式
主从复制原理
主从复制优点
主从复制缺点
数据断点续传
数据自动分片机制
Cluster模式
Redis集群
Redis
Stirng
Integer
Boolean
Double
......
基本数据类型
MongoDB
TSDB
与行式储存的对比
clickhouse
数据库
服务网格
领域应用
云原生
概念与原理
实践
k8s
动态规划
二分
快排
堆排
排序算法
回朔
算法
面试
技术开发
0 条评论
回复 删除
下一页