1、定义
官方解释:
A field may be declared volatile, in which case the Java Memory Model
ensures that all threads see a consistent value for the variable.
翻译:一个字段可以被声明为volatile,在这种情况下,Java内存模型确保所有线程都能
看到变量的一致值。
简单一句话就是:保持变量的一致性。
2、与static的区别
static:
If a field is declared static, there exists exactly one incarnation of
the field, no matter how many instances (possibly zero) of the class
may eventually be created.
static,声明变量的唯一性;
volatile, 声明变量值的一致性.
static, 声明这个字段是静态的(可能被多个实例共享),在主存区上该类的所有实例的该字段为同一个变量,即唯一性。
volatile, 声明这个字段易变(可能被多个线程使用),Java内存模型负责各个线程的工作区与主存区的该字段的值保持同步,即一致性。