Java 体系目录
Java
基本数据类型 : https://www.cnblogs.com/LiaHon/p/11043238.html
序列化 : https://www.cnblogs.com/Jomini/p/12460994.html
String,Stringbuffer(安全), Stringbuilder
String 为什么不可变:https://www.cnblogs.com/Jomini/p/13709607.html
utf-8 和 GBK 区别
==, equal, hashcode 区别
1、== 和 equal 的对比 https://www.cnblogs.com/Jomini/p/13917710.html
2、equal 和 hashCode 的对比 https://www.cnblogs.com/Jomini/p/13933526.html
抽象类,接口区别 : https://www.cnblogs.com/Jomini/p/15485005.html
多态概念 : https://www.jianshu.com/p/caff17dd999c
1、向上转型,向下转型、安全性 : https://www.cnblogs.com/Jomini/p/13872904.html
2、重载 与 重写 的区别 :https://www.cnblogs.com/Jomini/p/13858330.html
java 异常类型 : https://www.cnblogs.com/Jomini/p/13709043.html
java 泛型 : https://www.cnblogs.com/Jomini/p/13927817.html
类型参数<T> 和 通配符<?> 区别 :https://www.cnblogs.com/Jomini/p/14159365.html
类实现排序方式 :https://www.cnblogs.com/Jomini/p/13927639.html
final 和 static 的区别:https://www.cnblogs.com/Jomini/p/14158560.html
java 8 特性
Stream : https://www.cnblogs.com/codecat/p/10912454.html
https://blog.csdn.net/lindai329/article/details/102700907
无参构造函数:https://www.cnblogs.com/Jomini/p/15478148.html
私有无参构造函数 : 可能用于单例模式
try-resource 使用条件:https://blog.csdn.net/zeng6325998/article/details/109269941
Obejct 默认方法 https://www.cnblogs.com/Jomini/p/15567311.html
HashTable 和 ConcurrentHashMap 区别:https://blog.csdn.net/weixin_39651041/article/details/79953811
Java 引用类型 : https://www.cnblogs.com/liyutian/p/9690974.html
Java io : https://www.cnblogs.com/Jomini/p/15580156.html
设计模式
工厂模式 : https://www.cnblogs.com/caizhiqin/p/11269280.html
https://zhuanlan.zhihu.com/p/37217085
代理模式:https://blog.csdn.net/psl1234554321/article/details/106845705/
集合:
集合类型
list, map, set 区别
只有 treeMap 和 treeSet 有序,因为底层二叉树结构
set 都不允许元素重复
HashSet和LinkHashSet允许存在null数据
TreeSet中插入null数据时会报NullPointerException
map 的键都唯一,value 可重复
hashMap 只允许一个 null key
Hashtable不允许null值
TreeMap 不允许 key 为 null (二叉树节点,key 不能为null)
集合的初始容量、加载因子、扩容增量:https://www.cnblogs.com/Jomini/p/13830142.html
arryList
扩容机制 : https://www.cnblogs.com/Jomini/p/13783395.html
hashMap 和 hashTable 区别
( hashMap数组的默认长度为16 ,注意 hashtable的数组的默认长度是11
hashMap : https://blog.csdn.net/weixin_65950986/article/details/139183263
HashMap 1.7, 1.8: https://blog.csdn.net/niu_8865/article/details/108565345
扩容机制 : https://www.cnblogs.com/Jomini/p/13814273.html
哈希碰撞:https://www.jianshu.com/p/379680144004
HashMap源码面:https://www.cnblogs.com/Jomini/p/13827225.html
为什么线程不安全:https://www.cnblogs.com/Jomini/p/13906691.html
concurrentHashMap
别人最强总结:https://blog.csdn.net/qq_31709249/article/details/106952137
扩容机制:https://www.cnblogs.com/Jomini/p/13814601.html
源码问题:https://www.cnblogs.com/Jomini/p/13814750.html
源码问题整理后:https://www.cnblogs.com/Jomini/p/13814601.html
set 添加元素 : https://www.cnblogs.com/Jomini/p/13960570.html
treeSet,HashSet区别: https://www.cnblogs.com/williamjie/p/11164123.html
题目 : https://www.cnblogs.com/Jomini/p/15407062.html
数据结构和算法:
算法稳定性概念:https://www.cnblogs.com/Jomini/p/13927569.html
二叉树、平衡树、红黑树 :https://www.cnblogs.com/Jomini/p/13893067.html
平衡二叉树、B树、B+树、B*树 : https://www.cnblogs.com/Jomini/p/13887106.html
Java并发
线程
概念:https://www.cnblogs.com/xrq730/p/5060921.html
线程状态 :https://www.jianshu.com/p/c11569de4dc8
线程状态转换 :https://www.jianshu.com/p/c11569de4dc8
线程之间的通信:https://www.cnblogs.com/mengdd/archive/2013/02/20/2917956.html
线程的中断机制:https://www.jianshu.com/p/e0ff2e420ab6
线程遇到的问题:https://www.cnblogs.com/Jomini/p/15451571.html
https://www.cnblogs.com/boanxin/p/11706795.html
线程安全:线程安全
等待池
ThreadLocal : https://www.cnblogs.com/Jomini/p/13857837.html
线程池
线程池四种类型场景问题 :https://www.cnblogs.com/Jomini/p/15380602.html
线程池状态 : https://www.cnblogs.com/Jomini/p/13669993.html
线程池回收 : https://www.cnblogs.com/Jomini/p/13941221.html
ThreadPoolExcuator 线程池使用 :https://www.cnblogs.com/Jomini/p/15459196.html
锁:
锁的实现原理:https://zhuanlan.zhihu.com/p/75880892
自旋锁,偏向锁,https://www.cnblogs.com/linghu-java/p/8944784.html
synchronize 原理 :https://www.cnblogs.com/aspirant/p/11470858.html
https://blog.csdn.net/qq_32998153/article/details/79529704
wait / sleep区别 https://www.cnblogs.com/hexianl/p/10425756.html
atomic
voliate
J.U.C
Java 内存模型 (JMM) : https://www.cnblogs.com/Jomini/p/13620845.html
Java内存模型(JMM) 和 JVM 内存模型区别 :https://www.cnblogs.com/Jomini/p/13625388.html
场景:
限流
1、多线程并发安全计数器实现限流 :https://www.cnblogs.com/Jomini/p/13621330.html
题目:https://www.cnblogs.com/Jomini/p/15406279.html
JVM
类加载过程
类加载流程 :https://www.cnblogs.com/Jomini/p/13625349.html(区别注:final 和 static 类型变量初始化时机)
双亲委模型 :https://www.jianshu.com/p/9df9d318e838
运行时数据区 : https://www.cnblogs.com/Jomini/p/13176653.html
线程共享区
方法区
堆内存
线程私有区
虚拟机栈
本地方法栈
程序计数器
堆的区域分类 : https://www.cnblogs.com/Jomini/p/13798248.html
堆的组成 : https://www.cnblogs.com/Jomini/p/13798248.html
新生代
老年代
持久代
垃圾回收器 :https://www.cnblogs.com/Jomini/p/13201640.html
垃圾回收器算法 :
老年代
标记清除
标记整理
新生代
复制算法
分代算法
垃圾回收器种类
垃圾回收器
CMS 和 G1 :https://www.cnblogs.com/Jomini/p/13900548.html
内存溢出 (OOM) :https://www.cnblogs.com/Jomini/p/13671993.html
Spring
Bean生命周期 : https://blog.csdn.net/qq_43206800/article/details/109602001
Beanfactory
源码
反射 :https://www.cnblogs.com/Jomini/p/13657565.html
反射原理 : https://www.cnblogs.com/Jomini/p/13657565.html
创建实例方式 : https://www.cnblogs.com/Jomini/p/13716328.html
Class.forName 和 .loadClass 方法的区别 : https://www.cnblogs.com/Jomini/p/13749568.html
IOC :https://www.cnblogs.com/Jomini/p/13830920.html
源码
@Autowried 注册原理 https://blog.csdn.net/windrui/article/details/105963635
AOP : https://www.cnblogs.com/Jomini/p/13541191.html
jdk动态代理 : https://www.cnblogs.com/Jomini/p/13658714.html
Cglib : https://www.cnblogs.com/Jomini/p/13658921.html
jdk 动态代理 和 Cglib 区别:https://www.cnblogs.com/Jomini/p/15458145.html
aop :
注解的实现原理
拦截器 和 过滤器 : https://www.cnblogs.com/panxuejun/p/7715917.html
Spring 工作流程 : https://www.cnblogs.com/Jomini/p/8534371.html
Spring 常用注入方式 :Setter属性注入,构造方法,注解方式
Spring 设计模式:
工厂模式:https://blog.csdn.net/qq_31314141/article/details/104865930
https://www.cnblogs.com/snailclimb/p/spring-design-patterns.html
代理模式:https://blog.csdn.net/qq_31314141/article/details/104865930
Spring
Spring
单例模式:
主要模块 :https://www.cnblogs.com/Jomini/p/13808748.html
加载原理 :https://www.cnblogs.com/Jomini/p/13785630.html
请求过程 : https://www.cnblogs.com/Jomini/p/8534371.html
事务传播机制 :https://www.cnblogs.com/Jomini/p/13785289.html
事务隔离级别:https://www.cnblogs.com/Jomini/p/14016229.html
二阶段提交,三阶段提交:https://www.cnblogs.com/Jomini/p/13645531.html
拦截器 过滤器关系和区别及执行顺序 : https://www.cnblogs.com/Jomini/p/13839743.html
注解实现原理
@Autowired注解的实现原理:https://blog.csdn.net/windrui/article/details/105963635
Spring的BeanFactoryPostProcessor和BeanPostProcessor : https://blog.csdn.net/caihaijiang/article/details/35552859
beanfactory 和 ApplicationContext : https://blog.csdn.net/qq_31314141/article/details/104865930
实现 Spring 容器 : https://blog.csdn.net/u011702633/article/details/81094795
多数据源实现:
循环依赖解决思路:https://www.cnblogs.com/Jomini/p/15560053.html
解决循环依赖 :https://blog.csdn.net/lkforce/article/details/97183065
https://www.cnblogs.com/Jomini/p/15400050.html
RestTemplate : https://blog.csdn.net/jinjiniao1/article/details/100849237
Springboot 多数据源配置 : https://www.cnblogs.com/cxy2016/p/9973502.html
https://www.cnblogs.com/java-zhao/p/5413845.html
题目:https://www.cnblogs.com/Jomini/p/15400050.html
https://zhuanlan.zhihu.com/p/368769721
附:
进程之间通信
RPC
IO模型
Spring secruity
jwt : https://www.cnblogs.com/Jomini/p/13523124.html
Oath2.0
Spring security 各个组件
Mybatis
源码 : https://my.oschina.net/u/3995125/blog/3092644
SpringCloud
RestTemplate
Erueka
nacos:
搭建:https://blog.csdn.net/G971005287W/article/details/114151856
搭建HA高可用 :https://blog.csdn.net/qq_37767455/article/details/120615048
https://blog.csdn.net/G971005287W/article/details/114162914?spm=1001.2014.3001.5501
Zuul
Feign
实现原理:https://www.cnblogs.com/crazymakercircle/p/11965726.html
在微服务启动时,Feign会进行包扫描,对加@FeignClient注解的接口,按照注解的规则,创建远程接口的本地JDK Proxy代理实例。
然后,将这些本地Proxy代理实例,注入到Spring IOC容器中。当远程接口的方法被调用,由Proxy代理实例去完成真正的远程访问,并且返回结果。
springCloud + Feign + Nacos : https://www.cnblogs.com/ncwuwsh/p/12732516.html
Redis https://www.cnblogs.com/Jomini/p/13679242.html
数据类型 : https://blog.csdn.net/gududedabai/article/details/81062234
set 和 zset 区别:https://blog.csdn.net/az44yao/article/details/117637829
1、Redis 字典:https://www.cnblogs.com/Jomini/p/13920651.html
2、Redis 散列表扩容 :https://www.cnblogs.com/Jomini/p/13921928.html
Zet 的底层数据结构 :https://zhuanlan.zhihu.com/p/193141635
https://segmentfault.com/a/1190000037473381
持久化方式
集群原理
缓存穿透 : https://blog.csdn.net/kongtiao5/article/details/82771694
redis 分布式锁 : https://www.cnblogs.com/Jomini/p/15418191.html
RedLock : http://redis.cn/topics/distlock.html
redis分布式锁问题 : https://www.jb51.net/article/165867.htm
题目 : https://www.cnblogs.com/Jomini/p/15418053.html
别人总结:https://blog.csdn.net/qq_44472134/article/details/104252693
redis 为什么那么快
持久化方式比较
Zookeeper https://www.cnblogs.com/Jomini/p/13644901.html
消息传播实现:https://www.cnblogs.com/Jomini/p/13808326.html
paxos 算法
选举原理
分布式配置中心
分布式锁
Mq
消费幂等 https://blog.csdn.net/wangxindong11/article/details/103405343
RabbitMq https://www.cnblogs.com/Jomini/p/13702370.html
场景
Rabbitmq和Kafka在项目中的不同使用
Rabbitmq主要作为消息解耦与实时通信使用,因为本身延时比较低,并且有消费确认机制保证消息可靠性
Kafka基于批量发送与消费的特性,适合大数据高吞吐量消费应用场景,不用考虑数据的强完整性,比较适合日常普通日志信息传输使用
Rabbitmq在Websocket实时通信模块中的作用
Rabbitmq主要作为消息的代理中继器来替代SpringWbsocket的消息代理功能.
消息发送过来时,Spring将消息通过与代理的连接传输到代理上,通过代理发送到连接到代理并订阅该路由的客户端
如何保证消息数据不丢失:https://blog.csdn.net/sxlishaobin/article/details/138305342
RocketMq
事务机制:https://www.cnblogs.com/qdhxhz/p/11191399.html
应用 : https://my.oschina.net/u/1581079/blog/4254615
有注释:https://zhuanlan.zhihu.com/p/249233648
MySQL : https://www.cnblogs.com/Jomini/p/13215640.html
MYISAM 和 INNODB 区别 :https://www.cnblogs.com/Jomini/p/13886802.html
B, B+ 树区别 :https://www.cnblogs.com/Jomini/p/13887106.html
为什么使用 B+ 不用 二叉树 https://blog.csdn.net/weixin_35647541/article/details/116113791
为什么 Mysql 用 B + 树做索引而不用 B 树或红黑树 : https://www.cnblogs.com/Jomini/p/13894898.html
Mysql 的事务隔离级别 :https://www.cnblogs.com/Jomini/p/14016414.html
聚集索引 和 非聚集索引:https://www.cnblogs.com/Jomini/p/13213846.html
mysql 查询优化 : https://www.cnblogs.com/Jomini/p/15410840.html
题目 : https://www.cnblogs.com/Jomini/p/15410889.html
分布式事务:
分布式事务理论:https://www.cnblogs.com/jian0110/p/14744291.html
强一致性 Seata 的 AT https://blog.csdn.net/qq_45076180/article/details/116795591
https://www.cnblogs.com/jian0110/p/14744291.html
最终一致性RocketMq
Linux
定位cpu 跑满 : https://www.cnblogs.com/Jomini/p/13673070.html
JVM GC 导致 cpu 跑满:https://blog.csdn.net/hotthought/article/details/82987428
网络
HTTP 请求报文(请求行、请求头、请求体),响应报文 : https://www.cnblogs.com/Jomini/p/13964058.html
OSI 七层模型 : https://www.cnblogs.com/Jomini/p/13964180.html
三次握手、四次挥手 : https://www.cnblogs.com/Jomini/p/15551014.html
HTTP 响应码 : https://www.runoob.com/http/http-status-codes.html
Websocket : https://www.cnblogs.com/chyingp/p/websocket-deep-in.html
HTTP RPC 的区别 :https://www.cnblogs.com/helloworldmybokeyuan/p/11626833.html
RPC主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便;
HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。
系统:
进程
进程切换系统做什么 : https://www.cnblogs.com/Jomini/p/15552238.html
1、切换页表全局目录
2、切换内核态堆栈
3、切换硬件上下文(进程恢复前,必须装入寄存器的数据统称为硬件上下文)
进程之间的通信 : https://blog.csdn.net/Longtermevolution/article/details/107243574
场景:
1、如何防止重复提交表单
2、实现mysql 和 redis 数据一致性 :https://zhuanlan.zhihu.com/p/91770135
3、redis 分布式锁 过期时间设置:看具体的插入时间,200ms, 300ms, 500ms
4、 redis 为什么要设置锁的时间 : https://weishihuai.blog.csdn.net/article/details/116326813
3、如何划分微服务:https://www.jianshu.com/p/069a6fd3bab2
4、秒杀系统:https://www.cnblogs.com/Jomini/p/15433224.html
8、docker 和 虚拟机区别 :
将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离
虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端,后端以及数据库。
https://www.zhihu.com/question/48174633
9、单例模式的线程安全问题
10、生成全局唯一id(基于Redis 实现分布式全局id) https://www.cnblogs.com/dsxie/p/13324489.html
https://blog.csdn.net/u011488009/article/details/107483319
https://www.cnblogs.com/agilestyle/p/13194027.html
11、微服务鉴权:https://www.cnblogs.com/Jomini/p/13546044.html
12、分布式事务:https://blog.csdn.net/qq_36737803/article/details/112360609
13、熔断和降级的区别 : https://www.cnblogs.com/qdhxhz/p/9581440.html
14、基于RocketMQ的分布式事务解决方案 https://www.cnblogs.com/qdhxhz/p/11191399.html
15、skywalking : 全链路追踪
https://www.pianshen.com/article/87011016639/
https://blog.csdn.net/weixin_39866487/article/details/111581322
16、Docker如何实现的容器间隔离
进程隔离和资源隔离
进程隔离使用到了Linux内核Namespace技术,重新编写进程编号以及屏蔽父进层信息
资源隔离使用overlay其实还是使用的挂载技术,将在宿主机上创建的资源挂载到容器内
https://blog.csdn.net/weixin_39651041/article/details/79953811