1,关于final

(1)被final修饰的类不可以被继承

(2)被final修饰的方法不可以被重写

(3)被final修饰的变量不可以被改变.如果修饰引用,那么表示引用不可变,引用指向的内容可变.

(4)被final修饰的方法,JVM会尝试将其内联,以提高运行效率

(5)被final修饰的常量,在编译阶段会存入常量池中.

2,使用final变量的好处

final变量不可变,最大好处就是线程安全

3,能否创建一个包含可变属性的不可变对象

可以,不可变的是引用,可变的是内容.如下面代码,final只是限制的acSysUser的引用不能变,但是对他内存中实际存的值是没有限制的

final AcSysUser  acSysUser = new AcSysUser();
acSysUser.setUserId("222");

4.关于final,finalize()和finally

(1)三者没有任何相关性,

(2)final是一个修饰符,用于修饰变量,方法和类.如果 final 修饰变量,意味着该变量的值在初始化后不能被改变.

(3)finalize()方法是在对象被回收之前调用的方法,给对象自己最后一个复活的机会.但是该方法由Finalizer线程调用,但调用时机无法保证.

(4)finally是一个关键字,与 try和catch一起用于异常的处理,finally{}一定会被执行,在此处我们通常用于资源关闭操作.

posted on 2021-02-06 16:16  song.yan  阅读(72)  评论(0编辑  收藏  举报