面试真题

Java · 简单 · 百度

volatile 关键字的作用?

简单 Java 🎤 百度
参考答案
结论:volatile保证可见性、禁止指令重排序,不保证原子性。要点:可见性:修饰变量修改后立刻刷新主内存,其他线程读时从主内存加载,避免工作内存缓存不一致导致死循环或旧值;有序性:通过内存屏障禁止写读重排,如双重检查单例防拿到未初始化对象;不保证原子性:i++等读改写复合操作仍会丢失更新,需synchronized或AtomicInteger。原理基于JMM,写插入StoreLoad屏障,读插入LoadLoad屏障。
题目整理自公开面经,答案由校招宝自研生成,仅供参考