JMM同步原语之final域的内存语义
生活随笔
收集整理的這篇文章主要介紹了
JMM同步原语之final域的内存语义
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
final 域?yàn)橐妙愋?/h3> 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);}} }
對(duì)象引用“逸出”
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);}} }總結(jié)
以上是生活随笔為你收集整理的JMM同步原语之final域的内存语义的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: guava限流器RateLimiter原
- 下一篇: app store 服务器维护,AppS