首页 > 编程语言 > 详细

[Java] final,finally,finalize的区别

时间:2020-03-12 12:50:08      阅读:43      评论:0      收藏:0      [点我收藏+]

final,finally,finalize的区别?

1.final关键字

1.1final修饰变量

如果final修饰变量上,final不能修改。

 技术分享图片

 

 

 

 

1.2 final可以修饰在属性上

 技术分享图片

如果final在属性上,直接给初始值,或在构造器中给初始值,如果存在多个构造器,则每一个构造器里面都要有final这个属性的初始化。

 技术分享图片

 

 

 

1.3 final修饰在方法上

final修饰在方法上不能被覆写。可以被正常调用。

 技术分享图片

 

1.4 final修饰在类上

如果一个类被final修饰,就不能被继承

 技术分享图片

 

源代码:TestFinal.java

final class Teacher{ //如果这个类被final修饰,则不能被继承,即本例第21行代码会报错
String name;

/*
final int age;//属性上用final,则直接赋初识值,或每个构造器中都要给final属性初识化

public Teacher(){ //子类构造器要调用默认构造器
this.age = 10;
}

public Teacher(String name){
this.name = name;
this.age = 10;
}
*/
public final void teach(){
System.out.println(name + "在教课");
}
}


class JavaTeacher extends Teacher{

boolean isGlass;
/*
//调用默认构造器,可隐藏
public JavaTeacher(){
super();
}
*/

/*
//会报错,final用在方法上,不能被覆写
public void teach(){
System.out.println(name + "在教课");
}
*/
}

public class TestFinal{

public static void main(String[] args){


}

}

 

 

2. finally:

 finally用于异常处理,无论是否发生异常,finally后面的语句都一定执行。

 

 

3. finalize:

finalize是在Object类中定义的方法,因此,所有的类都继承了它。子类可以覆盖finalize()方法,来整理系统资源或者执行其他清理工作。

用于垃圾回收,我们不用手动的去调用,由jvm来调用。

当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

什么样的对象会被回收?:匿名对象,或无主对象,没有引用即被回收。

 

[Java] final,finally,finalize的区别

原文:https://www.cnblogs.com/jsdy/p/12398562.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!