专业的JAVA编程教程与资源

网站首页 > java教程 正文

Java基础之如何快捷键生成文档注释?

temp10 2024-11-05 11:51:12 java教程 11 ℃ 0 评论

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

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

Java基础之如何快捷键生成文档注释?

构造函数内,对一个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在变量中需要注意的事项,如果忽略以上两点,很容易出现程序的报错,小伙伴们学习的时候需要留心。

我是李老师说Java,专注Java各类问题的解决、Java最新技术的分享、Java零基础到精通的教学,关注我,带你开启程序开发之路。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表