A. synchronized
B. volatile
C. serialize
D. static
答案是A, synchronized关键字是同步代码块关键字, 对对象加互斥锁
详解:
synchronized:
用来给对象和方法或者代码块加锁. 当它锁定一个方法或者一个代码块的时候, 同一时刻最多只有一个线程执行这个段代码
volatile:
用来确保将变量的更新操作通知到其他线程, 当把变量声明为volatile类型后, 编译器与运行时都会注意到这个变量是共享的, 因此不会将该变量上的操作与其他内存操作一起重排序. 然而, 在访问volatile变量时, 不会执行加锁操作, 因此也就不会使执行线程阻塞, 因此, volatile变量是一种比synchronized关键字更轻量级的同步机制
serialize:
Java对象序列化为二进制文件
static:
修饰变量, 方法, 静态代码块
静态变量:
-
由static修饰的变量称为静态变量
-
静态变量属于类, 而不属于某个类
-
静态变量的副本只有一个
静态方法:
- 在静态方法中只能调用静态变量和静态方法
- 在非晶态方法中, 可以调用静态方法或者变量
- 在静态方法中, 可以调用静态方法或者变量
- 在非静态方法中, 可以调用静态方法或者变量
- 在静态方法中不能使用this和super关键字
静态代码块:
- 用来给静态成员变量初始化