
围绕“volatile”的高频考题及详细解答一、计算机编程领域(高频考点:Java/C/C++并发/编译优化)(一)选择题在Java中,volatile关键字不能保证变量操作的哪个特性?( )A. 可见性 B. 有序性 C. 原子性 D. 禁止指令重排序答案:C解析:Java的volatile核心保证2个特性:①可见性(一个线程修改volatile变量后,其他线程能立即看到最新值,原理是变量修改后强制刷回主存,其他线程读取时跳过CPU缓存直接读主存);②有序性(通过“内存屏障”禁止编译器和CPU对volatile变量相关指令重排序,如禁止“volatile写”后排序“普通读”)。它不保证原子性:例如volatile int i = 0;,多线程执行i++时,仍会出现并发问题(i++拆分为“读值→加1→写回”3步,volatile无法保证这3步整体原子性,需配合synchronized或AtomicInteger)。