国产成人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电脑。

关注

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

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

啄木鸟军舰女兵3法版| 少女韩国免费观看高清电视剧八戒 | 日本MV与欧美MV的区别| 中文在线字幕免费观看电视剧00..| 老八日三个媳妇的最新进展| 麻花传剧原创MV在线看完整版高..| 开会桌下把荫蒂添的好多水| 疯狂精力旺盛的女婿小说免费阅读| 《淫毛》在线观看免费| 妈妈がだけの心に漂う| 春闺艳妇(古言)作者:年富一年| 公么无耻要求中韩双字的意思| 蜜桃成时熟2| YSL水蜜桃86满十八岁会黑吗.| 《男医生的特殊治疗》| 《完美邻居2》电影在线观看| 妈妈和女婿免费播放电视剧| 南来北往电视剧免费观看完整版高..| 戴上自安小玩具调到10档| 美女被咬小头头视频大全| 《公与媳夫妇:交换》| 《性房纵欲》在线观看| BOBO浏览器| 做爰高潮A片(毛片)| 深入交流漫画网免费看| 老头跪在两腿之间吃奶| 年轻的朋友电影在线观看免费完整| 我的同学| 7777777亚洲和欧洲尺码表| 欲奴性猛交2无删减| 一家乱战1-13集大| BOBO浏览器| 妈妈说今晚爸爸不回家| 适合夫妻二人看的小众影视剧| 女生干多了腿中间会变宽吗| 戴着小玩具练瑜伽| 办公室狂C小雪秘书好爽H| 男人晚上吃奶时乳房会变| 《漾出OVER FLOWER》| 《交换做爰》在线观看| 蜜桃成熟2