国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > java基础 > java中final域的内存语义理解

java中final域的内存语义理解

java final

头像

小妮浅浅

2021-08-04 10:24:365172浏览 · 0收藏 · 0评论

说明

1、对于final域的内存语义,编译器和处理器要遵守两个重排序规则(内部实现也是使用内存屏障):

2、写final域的重排序规则:在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用变量,这两个操作之间不能重排序。

读final域的重排序规则:初次读一个包含final域的对象的引用,与随后初次读这个final域,这两个操作之间不能重排序。

实例

public class FinalExample {
       int i;//普通域
       final int j;//final域
       static FinalExample obj;
       
       public FinalExample () {
              i = 1;//写普通域。对普通域的写操作【可能会】被重排序到构造函数之外
              j = 2;//写final域。对final域的写操作【不会】被重排序到构造函数之外
       }
       
       // 写线程A执行
       public static void writer () {?   
              obj = new FinalExample ();
       }
       
       // 读线程B执行
       public static void reader () {?   
              FinalExample object = obj;//读对象引用
              int a = object.i;//读普通域。可能会看到结果为0(由于i=1可能被重排序到构造函数外,此时y还没有被初始化)
              int b = object.j;//读final域。保证能够看到结果为2
       }
}

以上就是java中final域的内存语义理解,希望对大家有所帮助。更多Java学习指路:Java基础

本教程操作环境:windows7系统、java10版,DELL G3电脑。

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

啵啵| 罚坐三角架尖尖图片| 主动把奶头放进男朋友嘴巴里| 《慈母夜吟》完整版| 《法国空乘10》| 《一滴都不许漏》何泽城林荫 | 美国大片BGM大全播放| 男同网站| 公司企业文化展示墙| 把女人弄爽特黄A大片视频| 性做爰A片春欲| 白丝脚上的浓浓的精华液能用吗| 成色P31S是国精产品吗| 韩漫| 两个男人睡一个女人什么心理呢| 《性爽2》电影| 中文字幕精品无码亚洲字幕一区 | 羞羞漫画| 美女被咬小头头视频大全| 《从上司到妻子》动画结局| 《禁忌》大结局| 《饥渴的人妻日本》中字| 亲吻哼哼唧唧原声不带歌| BOSS凶猛老公喂不饱十月初| 蜜桃臀| 嫂嫂宝库免费观看电视剧全部| 《再来一次好吗》免费观看| 少女哔哩哔哩免费高清观看2 | 女子SPA高潮呻吟抽搐| 《无能的丈夫》完整版| 用毛笔刷尿孔不准尿出来怎么办| 大肉蟒撑开稚嫩紧窄| 丰满岳妇张开腿任你躁| 桃色诱惑| 蜜桃成时熟| 人野兽马狗猪大全| 俄罗斯姑娘免费看高清电视剧| 窝窝影院在线观看免费播放电视剧| 男生把小困困放到女生困里视频| 《伦敦空姐美版2023》| 美丽小蜜桃5荷尔蒙