transient
被transient修饰的成员变量,在序列化的时候其值会被忽略,在被反序列化后, transient 变量的值被设为初始值, 如 int 型的是 0,对象型的是 null。
instanceof
它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。
const
const是Java预留关键字,用于后期扩展用,用法跟final相似,不常用
static
final
synchronized
synchronized
是Java提供的一个并发控制的关键字。主要有两种用法,分别是同步方法和同步代码块。被synchronized
修饰的代码块及方法,在同一时间,只能被单个线程访问。synchronized
,是Java中用于解决并发情况下数据同步访问的一个很重要的关键字。当我们想要保证一个共享资源在同一时间只会被一个线程访问到时,我们可以在代码中使用synchronized
关键字对类或者对象加锁。synchronized
可以保证原子性、有序性和可见性。
volatile
volatile
通常被比喻成"轻量级的synchronized
",也是Java并发编程中比较重要的一个关键字。和synchronized
不同,volatile
是一个变量修饰符,只能用来修饰变量。无法修饰方法及代码块等。volatile
只能保证有序性和可见性。在以下两个场景中可以使用volatile
来代替synchronized
:
1、运算结果并不依赖变量的当前值,或者能够确保只有单一的线程会修改变量的值。
2、变量不需要与其他状态变量共同参与不变约束。
原文:https://www.cnblogs.com/yysy/p/13382694.html