
为什么需要Java内存模型?
面试官:今天想跟你聊聊Java内存模型,这块你了解过吗?候选者:嗯,我简单说下我的理解吧。那我就从为什么要有Java内存模型开始讲起吧面试官:开始你的表演吧。候选者:那我先说下背景吧候选者:1. 现有计算机往往是多核的,每个核心下会有高速缓存。高速缓存的诞生是由于「CPU与内存(主存)的速度存在差异」,L1和L2缓存一般是「每个核心独占」一份的。候选者:2. 为了让CPU提高运算效率,处理器可能会对输入的代码进行「乱序执行」,也就是所谓的「指令重排序」候选者:3. 一次对数值的修改操作往往是非原子性的(比如i++实际上在计算机执行时就会分成多个指令)候选者:在永远单线程下,上面所讲的均不会存在......