1.zookeeper的使用
参考:https://blog.csdn.net/hongtaolong/article/details/88898875
https://zhuanlan.zhihu.com/p/42056183
https://www.cnblogs.com/codestory/p/11387116.html
https://github.com/SeemSilly/codestory/blob/master/research-zoo-keeper/src/main/java/tech/codestory/zookeeper/lock/ZooKeeperWriteLock.java
1.0 zookeeper的作用
https://blog.csdn.net/nangeali/article/details/81428419
1.1 Curator实现分布式锁
https://www.cnblogs.com/LiZhiW/p/4931577.html
https://www.jianshu.com/p/a974eec257e6
1.2 zookeeper实现负载均衡
https://blog.csdn.net/hellozpc/article/details/80260903
https://blog.csdn.net/qq_40241957/article/details/82930310
https://www.cnblogs.com/toov5/p/9899238.html
https://my.oschina.net/ydsakyclguozi/blog/631390
参考:https://segmentfault.com/a/1190000012185401
1.3 zookeeper实现的分布式任务调度
https://blog.csdn.net/HappyHeng/article/details/83478539
https://blog.csdn.net/HappyHeng/article/details/83573112
1.4 zookeeper实现注册中心
https://study.163.com/course/courseLearn.htm?courseId=1209594847#/learn/video?lessonId=1280009454&courseId=1209594847
1.5 zookeeper实现分布式定时任务调度
https://www.cnblogs.com/yeyongjian/p/8906474.html
2.Netty的使用
参考:https://blog.csdn.net/qq_34337272/article/details/79764259
https://www.sohu.com/a/272879207_463994
https://my.oschina.net/xishuixixia/blog/93076
3.大厂面试题
https://www.jianshu.com/p/d6e9b1c211dd
https://www.jianshu.com/p/967541aaf50d
https://www.jianshu.com/p/a61f012e84d5
4.Hibernate二级缓存
https://www.cnblogs.com/lesliehe/p/8022266.html
https://www.bilibili.com/video/BV1rx411p7QB?p=7
5.mybatis二级缓存
https://www.bilibili.com/video/BV1Kp4y1y75f?from=search&seid=2969846661096567995
6.java设计模式
https://study.163.com/course/courseMain.htm?courseId=1209569921
http://c.biancheng.net/design_pattern/
https://www.runoob.com/design-pattern/design-pattern-tutorial.html
7.SpringCloud的使用
https://www.bilibili.com/video/BV1tJ411s7e7/?p=20
https://www.bilibili.com/video/BV1eE411h7so?p=7
8.springboot+Dubbo的使用
https://www.bilibili.com/video/BV1HJ411r7E4?p=2
https://www.bilibili.com/video/BV1bb411J7k9?p=3
9.kafka的使用
https://www.bilibili.com/video/BV15J411z7Q2/?p=11&t=2093
https://www.bilibili.com/video/BV1QJ411m7Ks?t=5247
10.Paxos和Raft算法
https://www.bilibili.com/video/BV19t411c75p/?p=2&t=1458
11.Redis集群搭建
https://www.bilibili.com/video/BV1JE411d7ZL?p=2
12.分布式ID
https://study.163.com/course/courseMain.htm?courseId=1209583858
13.spring源码
参考:https://www.bilibili.com/video/BV1uE411d7L5?p=18
14.mysql的主从复制
https://www.bilibili.com/video/BV1a7411L7h4?from=search&seid=8679762062137834618
15.mycat
https://www.bilibili.com/video/BV12E41157po?from=search&seid=1947935159238499669
参考:https://www.bilibili.com/video/BV127411g7Nu?p=28
16.sharding jdbc使用
https://www.bilibili.com/video/BV1r7411f79Y?p=5
https://www.bilibili.com/video/BV1r64y1T7Y7?p=6
17.Java设计模式之六大设计原则
https://blog.csdn.net/ztchun/article/details/93521119
18.mysql优化
https://www.bilibili.com/video/BV1iV411o7sT?p=1
https://www.bilibili.com/video/BV1tK411p74B?p=6
19.hashcode相同的字符串
System.out.println("ABCDEa123abc".hashCode()); // 165374702
System.out.println("ABCDFB123abc".hashCode()); // 165374702
System.out.println("Aa".hashCode()); // 2112
System.out.println("BB".hashCode()); // 2112
20.一致性hash原理
参考:https://www.cnblogs.com/lpfuture/p/5796398.html
21.源码中的设计模式,为什么这么用?
https://ispotu.blog.csdn.net/article/details/106721774
22.TCP连接 三次握手和四次挥手
参考:https://blog.csdn.net/qq_37884273/article/details/82188586
https://www.jianshu.com/p/e916bfb27daa
23.项目内存或CPU占有率过高如何排查?
参考:https://www.jianshu.com/p/1ebc56ecb76a
https://blog.csdn.net/weixin_43778179/article/details/90147523
https://blog.csdn.net/qq_40597878/article/details/103272608
https://blog.csdn.net/jingyangV587/article/details/103438347
24.Dubbo底层原理
参考:https://blog.csdn.net/ityouknow/article/details/100789012
https://blog.csdn.net/qq_33101675/article/details/78701305
25.常见java算法
各类算法:https://www.runoob.com/w3cnote_genre/algorithm
(1)快排
https://blog.csdn.net/boy_chen93/article/details/85049274
https://blog.csdn.net/u011998957/article/details/88080093
(2)归并排序
https://www.cnblogs.com/chengxiao/p/6194356.html
(3)插入排序
https://www.jianshu.com/p/d2cf77f78b3e
(4)堆排
https://www.cnblogs.com/chengxiao/p/6129630.html
(5)冒泡排序
https://ispotu.blog.csdn.net/article/details/51965794
(6)选择排序
https://www.runoob.com/w3cnote/selection-sort.html
(7)希尔排序法(插入排序的改进版)
https://www.imooc.com/article/284892
(8)双轴快排
https://blog.csdn.net/Holmofy/article/details/71168530
https://www.cnblogs.com/nullzx/p/5880191.html
各种算法的动画演示:http://www.jsons.cn/sort/
26.GC垃圾回收、JVM优化
https://blog.csdn.net/missA_fei/article/details/88555428
https://blog.csdn.net/high2011/article/details/80177473
https://www.cnblogs.com/aspirant/p/8662690.html
https://www.cnblogs.com/aspirant/p/8663872.html
https://www.cnblogs.com/aspirant/p/8663911.html
https://www.cnblogs.com/aspirant/p/8663897.html
27.mysql范式
https://www.cnblogs.com/moxiaotao/p/10120672.html
28.AQS原理
https://www.cnblogs.com/duanxz/p/3559510.html
https://blog.csdn.net/qq_37685457/article/details/89704124
https://segmentfault.com/a/1190000017372067
29.CountDownLatch、CyclicBarrier、Semaphore
https://www.cnblogs.com/zhaoyan001/p/10775676.html
https://www.cnblogs.com/MrEven/p/11570251.html
30.Java类图UML符号
https://www.cnblogs.com/meishibiexuejava/p/8551092.html
31.快排优化
https://www.cnblogs.com/noKing/archive/2017/11/29/7922397.html
https://blog.csdn.net/u010325665/article/details/86299710
https://blog.csdn.net/QuZDLvT/article/details/98181898
32.mysql索引优化原则
https://blog.csdn.net/yhl_jxy/article/details/88636685
https://www.cnblogs.com/hepingqingfeng/p/7553428.html
https://www.cnblogs.com/gaoyuechen/p/8067450.html
https://blog.51cto.com/13126942/2044825
https://www.cnblogs.com/zhuxiaopijingjing/p/12970691.html
https://www.jb51.net/article/136000.htm
33.分布式ID
https://www.cnblogs.com/wuneng/p/11478160.html
34.HashTable和HashMap区别
https://www.cnblogs.com/williamjie/p/9099141.html
35.手写一个tcp
https://www.cnblogs.com/niuyourou/p/12542209.html
36.Netty
https://www.cnblogs.com/nanaheidebk/p/11025362.html
37.意向锁、排它锁、共享锁
https://www.zhihu.com/question/51513268
38.WebService
https://blog.csdn.net/c99463904/article/details/76018436
39.IO设计模式:Reactor和Proactor对比
https://www.cnblogs.com/me115/p/4452801.html
40.select、poll和epoll之间的区别与优缺点
https://blog.csdn.net/BaiHuaXiu123/article/details/89948037
https://www.cnblogs.com/aspirant/p/9166944.html
41.synchronized和ReentrantLock区别
https://blog.csdn.net/qq_36299025/article/details/89555462
42.解决哈希冲突的方式
https://www.cnblogs.com/kaleidoscope/p/9588151.html
https://blog.csdn.net/TangXiaoPang/article/details/87902057
43.Tomcat为什么要重写类加载器
https://blog.csdn.net/qq_38182963/article/details/78660779
44.MySQL连接查询inner join,left join和right join的区别
https://www.cnblogs.com/mafeng/p/10150013.html
45.最小堆
https://blog.csdn.net/hrn1216/article/details/51465270
46.手写多线程情况下,生产者消费者的核心代码
https://blog.csdn.net/Virgil_K2017/article/details/89283946
https://www.cnblogs.com/lazyegg/p/12849027.html
47.查找算法
查找算法分类:https://blog.csdn.net/xushiyu1996818/article/details/90604118
二分查找(用于大数据量查找,前提是数据有序):https://blog.csdn.net/Xidian2850/article/details/93595592
顺序查找:一个个对比,简单但效率低
插值查找:https://blog.csdn.net/abcdef314159/article/details/850974147
Hash查找:https://www.iteye.com/blog/xiaojun-it-2291852
分块查找:将查找表分成若干块,在每一块中数据元素的存放是任意的,但块与块之间必须是有序的
二叉树查找:https://www.iteye.com/blog/yinger-fei-1946460
https://blog.csdn.net/evankaka/article/details/48088241
48.https加密流程
https://www.cnblogs.com/zhuqil/archive/2012/07/23/2604572.html
49.Raft算法
http://thesecretlivesofdata.com/raft/
https://raft.github.io/
50.cookie跨域
https://www.cnblogs.com/hujunzheng/p/5744755.html
51.数据库和缓存数据一致性
https://blog.csdn.net/XiaoHanZuoFengZhou/article/details/100120510
52.Java内存模型(JMM)和volatile原理
https://www.bilibili.com/video/BV1EE41157fV?p=2
53.自定义AOP
https://www.jianshu.com/p/309cc4fa348e
https://www.jb51.net/article/150644.htm
https://www.cnblogs.com/jianjianyang/p/4910851.html
54.正向代理于反向代理的区别
https://www.cnblogs.com/taostaryu/p/10547132.html
55.Dubbo为什么使用长连接
https://blog.csdn.net/zgliang88/article/details/75440043/
https://www.cnblogs.com/-jn-blog/articles/13099968.html
56.Nacos作为注册中心时服务上下线的通知机制
57.zookeeper与Eureka、nacos的区别
zookeeper:一致性优先。CP模式,通过选举选出leader和追随者,要满足强一直性。过半可使用,zk才能用。且选举过程中出现短暂不可使用的情况。
Eureka:可用性优先。AP模式,去中心化的思想,主要有一存活,注册中心集群就可以使用
nacos:从1.0版本支持CP和AP模式混合集群。默认使用AP保证可用性,
58.SpringCloud的Zuul与GateWay的区别
Zuul:第一代网关,Netflix研发并贡献给Apache。zuul基于Servlet实现,阻塞时API,不支持长连接。需要一览springboot-web组建。
Gateway:第二代网关,Apache自研。性能相比Zuul更高。基于spring5构建,支持响应式非阻塞API,更好支持spring体系产品。需要依赖springboot-webFlux
59.长连接、短连接、长轮询、短轮询的区别
相同点 | 不同点 | |
---|---|---|
HTTP长连接 | 都是基于TCP连接,并无本质不同;由HTTP请求头Connection: keep-alive控制是否长/短连接。 | 1、使用次数:重用多次;2、关闭时机:超时后才关闭该TCP连接,由Keep-Alive: timeout=20控制超时时间(秒)。 |
HTTP短连接 | 1、使用次数:仅使用一次;2、关闭时机:一次HTTP请求响应后立即关闭该TCP连接。 |
相同点 | 不同点 | |
---|---|---|
HTTP长轮询 | 都是基于HTTP连接,都将重复发送相同请求。 | 1、请求发送频率:浏览器端收到HTTP响应后立即重复发起相同HTTP请求;2、服务器端处理机制:有数据时立即响应,无数据时等待数据或直到超时;3、特点:获取数据比较实时,服务器端需要较多资源以维持众多长轮询。 |
HTTP短轮询 | 1、请求发送频率:浏览器端收到HTTP响应后间隔一段自定义时间后重复发起相同HTTP请求;2、服务器端处理机制:无论是否有数据都立即响应;3、特点:获取数据不实时,通过浏览器端脚本即可实现。 |
轮询建立在连接基础上,轮询是长是短与连接是长是短无关。 HTTP长轮询主要用于实现需要实时获取数据的地方,例如:即时消息、实时股票价格等,其主要技术要点在于服务端无数据时如何保持到有数据或超时。
参考:https://www.cnblogs.com/Joeris/articles/10999373.html
https://blog.csdn.net/LEE1996JUN/article/details/79702848
60.HashMap的容量为什么是2的n次幂?
向集合中添加元素时,会使用(n - 1) & hash的计算方法来得出该元素在集合中的位置。其中n是集合的容量,hash是添加的元素进过hash函数计算出来的hash值。和这个(n - 1) & hash的计算方法有着千丝万缕的关系,符号&是按位与的计算,这是位运算,计算机能直接运算,特别高效,按位与&的计算方法是,只有当对应位置的数据都为1时,运算结果也为1,当HashMap的容量是2的n次幂时,(n-1)的2进制也就是1111111***111这样形式的,这样与添加元素的hash值进行位运算时,能够充分的散列,使得添加的元素均匀分布在HashMap的每个位置上,减少hash碰撞,避免形成链表的结构使得查询效率降低!
参考:https://blog.csdn.net/apeopl/article/details/88935422
61. Spring中FactoryBean和BeanFactory 区别
- BeanFactory 是ioc容器的底层实现接口,是ApplicationContext 顶级接口。
- spring不允许我们直接操作 BeanFactory bean工厂,所以为我们提供了ApplicationContext 这个接口 此接口集成BeanFactory 接口,ApplicationContext包含BeanFactory的所有功能,同时还进行更多的扩展。
- FactoryBean 是spirng提供的工厂bean的一个接口
简单的总结:
BeanFactory是个bean 工厂,是一个工厂类(接口), 它负责生产和管理bean的一个工厂
是ioc 容器最底层的接口,是个ioc容器,是spring用来管理和装配普通bean的ioc容器(这些bean成为普通bean)。
FactoryBean是个bean,在IOC容器的基础上给Bean的实现加上了一个简单工厂模式和装饰模式,是一个可以生产对象和装饰对象的工厂bean,由spring管理后,生产的对象是由getObject()方法决定的(从容器中获取到的对象不是
“ FactoryBeanTest ” 对象)。
参考:https://www.cnblogs.com/leeego-123/p/12159574.html
62.Spring扩展点总结
BeanDefinition与BeanFactory扩展 BeanDefinitionRegistryPostProcessor接口 BeanPostProcessor接口 InstantiationAwareBeanPostProcessor接口 InitializingBean接口
参考:https://www.jianshu.com/p/397c15cbf34a