JMM 滴答答 2020-07-05 165 阅读1分钟 Final 写final域的重排序规则 final域的重排序规则: 不允许将final域的写重排序到构造函数之外 如何实现? JMM禁止把final域的写重排序到构造器之外 编译器在final域写之后,构造函数return之前插入StoreStore屏障 读final域的重排序规则 final域的重排序规则: 在一个线程中,初次读对象引用和初次读该对象包含的final域,JMM禁止处理器重排序这两个操作。 如何实现? 编译器会在读final域操作之前加上LoadLoad屏障 happend-before