Final
final的意思是一个已初始化的变量不能再指向另外的值/对象
1.在构造函数内对final域的写入,与随后把这个构造对象赋给一个引用变量,这样的操作不能重排序.
store store
![](https://img.haomeiwen.com/i12624636/2cc9cec430f11700.png)
i = 1 可能会被排序在构造函数之外,而 j = 2 不会.
2.初次读包含final域的对象引用,与随后读这个final域, 两个操作之间不能重排序.
![](https://img.haomeiwen.com/i12624636/8d8d9f373798a48d.png)
3.在构造函数内对一个final引用的对象成员域的写入,与随后在构造函数外对这个沟槽最想的引用赋值给一个引用变量,这两个操作之间不能重排序.
![](https://img.haomeiwen.com/i12624636/bb1d5ca6fe65f397.png)
Final关键词中的内存语义
写:
![](https://img.haomeiwen.com/i12624636/0d00053ef7123e98.png)
读:
![](https://img.haomeiwen.com/i12624636/ff28a71142a65c9b.png)
网友评论