搜索
写经验 领红包
 > 健康

javafial(java的fial是什么)

导语:【java】final你了解吗

【地震高岗,一派西山千古秀】final通用理解

1.修饰变量:这个变量被初始化后便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可变,即不能再指向其他的对象。

如果final修饰的变量是对象类型,那么不可更改指的是该变量不可以再指向别的对象,但是对象的值时可以更改的,比如:

上述是自定义类,即便是数组,List等集合类型,所保存的值也是可以更改的。

2.修饰方法(确定下功能,没有被子类重写的必要)

不能被子类重写。如:Object的getClass();

功能已经确定下来,就算子类重写了该方法后,也是实现一样的功能,所以没有必要被子类重写。

3.修饰类(俗称太监类不能有孩子)

不能被继承,如:String类、StringBuffer类、System类

final与static区别

static作用于成员变量用来表示只保存一份副本,而final的作用是用来保证变量不可变 而且static与非static的存在区别是,在内存中存放的位置不同:所有static修饰的属性和方法都放在内存的方法区(内存的方法区相当于常驻内存,如果一个方法或者变量声明为static,可以节约内存,不必要为每个对象实例化的时候分配内存)里,而非静态的都堆放在堆内存中,只一点要记住哦,对以后内存优化很重要!

生命周期不同:静态在类消失后被销毁,非静态在对象销毁后销毁

其他与final相关

1.final与finally、finalize()

Object.finalize()//垃圾回收的,显示把内存中对象清理掉

2.接口中的变量都是public static final 的

其他与final与finally

final是java中的关键字,修饰符 finally是java中的一种异常处理机制,用在try,catch后

【门朝大海,三河合水万年流】

本文内容由小薇整理编辑!