java内存模型与线程规范

final 字段

  • 能给编译器有更大自由,让其可以对final字段的读操作同步到屏障只玩,然后调用任意或未知的方法

  • 允许编译器将final字段的值保存到寄存器,在非final字段需要重新加载的那些地方,final字段无需加载

  • final字段也允许编程人员在不需要同步的情况下实现线程安全的不可变对象

    一个线程安全的不可变对象被所有线程都视为不可变的,即使不可变对象的引用在线程间传递时存在数据争用。这提供了安全保证,可以防止不正确或恶意代码误用了不可变类

资料