韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > java基础 > java基础:使用final需要注意哪些事项?

java基础:使用final需要注意哪些事项?

java基础 final

头像

小妮浅浅

2021-04-22 09:48:423917浏览 · 0收藏 · 0评论

下面我们就来明确在变量中使用final的需要注意的规则,以及在局部和匿名类中关于使用final变量的特殊探讨,下面一起来看接下来的内容搞吧。

1.对于final变量,编译器和处理器都要遵守两个重排序规则

  • 构造函数内,对一个 final 变量的写入,与随后把这个被构造对象的引用赋值给一个变量,这两个操作之间不可重排序;

  • 首次读一个包含 final 变量的对象,与随后首次读这个 final 变量,这两个操作之间不可以重排序。

2.局部内部类和匿名内部类只能访问局部final变量

为了解决这个问题,我们先要去使用代码去验证一下。

public class Test {
    public static void main(String[] args)  {     
    }   
    //局部final变量a,b
    public void test(final int b) {
        final int a = 10;
        //匿名内部类
        new Thread(){
            public void run() {
                System.out.println(a);
                System.out.println(b);
            };
        }.start();
    }
}

原因是为什么呢?这是因为test()方法里面的参数a和b,在运行时,main线程快要结束,但是thread还没有开始。因此需要有一种机制,在使得运行thread线程时候能够调用a和b的值,怎么办呢?java采用了一种复制的机制,

也就说如果局部变量的值在编译期间就可以确定,则直接在匿名内部里面创建一个拷贝。如果局部变量的值无法在编译期间确定,则通过构造器传参的方式来对拷贝进行初始化赋值。

以上就是我们使用final在变量中需要注意的事项,如果忽略以上两点,很容易出现程序的报错,小伙伴们学习的时候需要留心。

推荐操作环境:windows7系统、java10版,DELL G3电脑。

关注

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

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

麻花星空天美MV免费观看电视剧| 三人成虎| 乳腺增生| 美国禁忌6 结局| 亚洲一区| 成品人和精品人的特点分析| GTV一同看GTV蓝颜| 夫妻二人世界免费看第一集 | 精品无码人妻一区二区免费AV| 百度CREATE2025| NYLONJP| 黑料门今日黑料免费| 真人刺激战场40分钟电视剧| 他用舌头给我6次高潮| 伦理《少妇的滋味》完整版| 《女朋友的妹妹3》| 《法国少女3》高清| 打扑克| 欧洲尺码和亚洲码是3D还是2D | 蜜桃成熟时| 爸爸汆肉的日常| 蘑菇花园H5部分阅读目录大全| 妈妈让我戴上避孕套的下一句是啥| 哪吒之魔童闹海 电影| 《日本公与媳5》公妇伦| 孕妇| 星空传媒天美传媒有限公司| 国产精品高潮呻吟久久A片小说| 爱的精灵| 两人一起做AJ的视频教程| 《黏糊糊的你》动漫免费观看| 丫头把腿开大让我添添| 丫头把腿开大让我添添| 《少妇》6| 中国时装秀视频| 《一滴都不许漏》何泽城林荫| 比白洁还牛的四大书| 韩浸在线阅读浸画画免费读漫画下..| 九九在线观看免费播放大全电视剧| 120分钟做爰A片免费| SNH48欧洲码和亚洲码图片