华为OD面试真题题库
专栏:华为OD面试真题题库
目录: 最新华为OD面试手撕代码真题目录以及八股文真题目录
1. 请解释一下在Java中使用volatile
关键字的作用,并解释什么是可见性和有序性。
volatile
是Java中的一个关键字,用于修饰变量。它具有以下两个作用:
-
可见性(Visibility):当一个变量被声明为
volatile
时,它保证了在一个线程中对该变量的修改对其他线程是可见的。也就是说,当一个线程修改了volatile
变量的值,其他线程可以立即看到最新的值,而不会使用过期的缓存值。 -
有序性(Ordering):当一个变量被声明为
volatile
时,它禁止了指令重排序优化,保证了操作的有序性。具体来说,volatile
变量的读写操作会按照其在代码中的顺序执行,不会被重排序到其他指令之前或之后。
示例代码:
public class VolatileExample {
private volatile boolean flag = false;
public void writer() {
flag = true