JMM同步原语之final域的内存语义
生活随笔
收集整理的這篇文章主要介紹了
JMM同步原语之final域的内存语义
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
final 域為引用類型
public class FinalReference {/*** final 域.*/final int[] arr;static FinalReference ref;public FinalReference() {arr = new int[1];arr[0] = 1;}public static void writeOne() {ref = new FinalReference();}public static void writeTwo() {ref.arr[0] = 2;}public static void reader() {if (ref != null) {int temp = ref.arr[0];System.out.println("temp:" + temp);}} }對象引用“逸出”
public class ReferenceEscape {final int i;static ReferenceEscape escape;public ReferenceEscape() {i = 1; //1、寫final 域.escape = this; //2、this引用再次“逸出”.}public static void writer() {new ReferenceEscape();}public static void reader() {if (escape != null) { //3int temp = escape.i; //4、final 域可能還未初始化.System.out.println("temp:" + temp);}} }總結
以上是生活随笔為你收集整理的JMM同步原语之final域的内存语义的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: guava限流器RateLimiter原
- 下一篇: JSON.parse()解析单引号错误的