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

文章 > 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电脑。

关注

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

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

真人姓交| 星空传媒天美传媒有限公司| 他扒开内裤把舌头伸进去| 强行挺进朋友漂亮人妻身体| 咬女生小头头视频| 父女一起到达巅峰的小说| 美国伦理4女警| 《魅魔之耻》1~4集免费看 | C2000论坛| 在车里被弄了4次高潮| 下面的小嘴又饿了| 法国《监狱伦理3》| 《与上司做爰HD》| 亲嘴还扔衣服| 星空麻花MV高清| 星空传媒天美传媒有限公司| 100%透光裸妆| 小荡货啊…啊…用力啊快视频 | 麻豆 无码 国产在线观看| 和妈妈做了怎么办心理咨询| 喜爱夜蒲在线观看| 男朋友摸完小花园小肚子有点痛 | 无码免费AV片在线观看| 人狗大战2免费观看正版| 暴躁少女零九CSGO| 蜜臀AV| 小扫货几天没弄了| 9.1萝卜黄| 年轻的母亲4| 1688黄桃网站进入页面| 《訾花交换做爰》| 偷偷在线观看免费的电视剧最新| 宝宝水帘洞都拉丝了怎么办| 《厨房激战5》完整版在线观看| 沉沦韵母小说全文阅读| 《好好疼爱里面》免费看| 《请好好疼爱里面》免费观看| 《从上司到妻子》动画结局| 情满四合院演员表| 《交换温柔》免费观看全集完整版| 麻豆