Spring MVC的原理
 Mybatis的多级缓存机制
 线程池的大小和工作原理
 
上述问题,我们称为静态的问题,具有标准的答案,而且这个答案不会变化!
如果没有Spring,会怎么样?IOC这个思想是解决什么问题?
 如何设计一个支持1000万用户访问的系统
 如何设计一个秒杀系统
 如果让你设计一个集团层面的全局ID生成器,你怎么做?
 。。。【变化↓】
 1.没有标准答案,
 2.需要你去基于自己的技术积累,总结成自己的理解去回答。(知识积累),判断更加客观
 如果单纯是基于面试题来准备面试,99%的概率是无法通过
 简历塑造——外在和内在要保持一致
 
基于技术的理解层次来提高技术思维
@Content 注解的作用,volatile关键字的原理,伪共享问题的原理和解决思路,cpu的多级缓存设计的目的。。。
产生背景
 解决问题的方案
不同的作者在解决特定问题的时候,它设计的技术方案以及思考的维度
曾经参与过类似的设计(经验),曾经在某些源码中读过类似的设计思路(见过)
- [ @Content注解是解决伪共享问题,而伪共享其实是CPU层面多核心设计下存在的一个问题!]
 
CPU层面的工作原理


 
 
总结
CPU的迭代发展的目标,提高计算机处理程序的性能
 1.多核CPU
 2.CPU缓存行,减少内存IO的耗时,带来缓存一致性问题
 3.MESI协议,缓存一致性协议,解决缓存一致性问题
 4.再优化,引入空间局部性原理(指令预加载)带来伪共享问题
 5.采用缓存行填充来解决,@Contend、或者变量的填充,64个字节
 核心:提高CPU利用率,增加CPU性能
价值思考:(技术的设计思想)
 空间换时间(Mysql-StoreBuffer,Redis,多级缓存【Mybatis,减少sql和数据库的交互】,Eurekas【多级缓存设计,减少读和写】)
 空间局部性原理(Mysql预加载机制)
 异步化的数据同步(StoreBuffer。。)
 多CPU核心(分布式思想)
 锁(缓存锁,总线锁)MESI协议
晶体管2进制的计算体系里面,只要没有超脱这个范围,所有上游的思想基本上相同
 如何提升内存的使用效率
 
把一些热点数据放在内存
 内存的淘汰机制
 内存的释放(JVM垃圾回收器,CMS,G1。。。)
如何提升CPU利用率
如果做架构、技术经历 遇到下面人员不懂的,怎么办?
经验+见过
- [学习层面 ]
 - [ 知识理解层面]
 - [ 解决问题能力的层面]
 
思想的沉淀
项目问题、场景问题
-  
空间换时间
 -  
预加载机制
 -  
异步化
 -  
加锁。。。
 -  
工作年限
 -  
技术的范围
 -  
如何在短期内把需要圈定的技术范围,转化为可以表达的能力
 
面试面什么
- 面试(3年,5年,项目维度,表达维度,技术维度,深度的思考和技术积累的维度)
 - 弥补短板,针对短板制定一个月的规划
 - 学的东西表达出来
 - 简历/复盘/录音



 



















