拉钩面试知识

1.JMM,java 运行时区域数据模型,例如 voletile、threadlocal 类型
JMM对应的是规范/规则,主内存、缓存、工作内存,可见性/指令重排/有序性
详见文章:https://blog.csdn.net/javazejian/article/details/72772461
2.范型T 类型擦除
java 伪泛型,类型擦除,编译器.反射解决.
详见文章:https://blog.csdn.net/briblue/article/details/76736356
3.spring bean 单例实现、无参数构造方法和有参数方法
spring源码getBean方法,.class->beandifinition->instance->bean的cache,getBean从单例注册表,一般单例最好在static{}代码段初始化
详见文章:https://blog.csdn.net/u011305680/article/details/79717238
4.线程池 设计模式、实现
线程池的设计模式/参数信息,需要回顾看书 《编程之美》
设计模式:Future模式 参考https://www.jianshu.com/p/5d45e822357c(重点)、Master-Worker模式、Guarded Subspesion、不变模式、生产者-消费者模式(重点)
参数和含义:
5.AQS ,队列
NoneFairSync和FairSync 继承自Sync,抽象类Sync继承自AQS
AQS:state、Node(双向)、shared或exlusive[共享锁和独占锁]、condition(线程级别条件控制)
需要回顾看书 《编程之美》
6.hystrix 线程池模式与信号量模式区别
参考文章:https://www.jianshu.com/p/dc0410558fc9和
https://www.jianshu.com/p/3c47e681bf0a
7.spring循环依赖
多个bean生成互相引用问题:https://blog.csdn.net/chejinqiang/article/details/80003868
7.jvm相关[类加载过程、GC可达分析]、线程池相关 、hashmap,concurrentmap(jdk1.7,jdk1.8)
分段锁机制:https://www.cnblogs.com/ITtangtang/p/3948786.html
jdk1.7.8实现对比:https://blog.csdn.net/qq296398300/article/details/79074239
8.http和https详细过程
详细通讯过程:https://www.cnblogs.com/wqhwe/p/5407468.html

拉钩面试知识_第1张图片
image.png

9.分布式锁 和分布式id,深究
雪花算法:1+41+10+12,保持全局唯一,高效,整体上按毫秒单调递增,但无法保持毫秒内的按时间绝对递增(因为有机器数位和时间不相干);
分布式锁:基于库、redis+lua脚本(redis支持lua脚本操作原子性)、zk
10.源码分析 spring 、dubbo简单实现
对源码流程大致的分析:
11.ReetrantLock和synchronized区别
文章1: https://blog.csdn.net/chenchaofuck1/article/details/51045134
重入锁源码: http://www.blogjava.net/zhanglongsr/articles/356782.html
12.interceptor的顺序
和filter的区别及执行顺序: https://blog.csdn.net/zxd1435513775/article/details/80556034
13.强引用/软引用/虚引用/弱引用
对比: https://blog.csdn.net/junjunba2689/article/details/80601729

你可能感兴趣的:(拉钩面试知识)