zoukankan      html  css  js  c++  java
  • [Java] final,finally,finalize的区别

    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来调用。

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

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

  • 相关阅读:
    VMware+Centos 7如何配置NAT模式上网
    win 8.1 Your PC needs to be repaired修复过程
    oracle 11g 如何创建、修改、删除list-list组合分区
    关于博客园整理心得
    asp.net使用WebBrowser采集加载完毕后的页面
    解决webconfig中禁用掉ViewState造成服务器控件回传获取不到值问题
    asp.net 路由映射到ashx
    2019.3.17
    三星860 evo 250g 开启AHCI模式读写对比
    解决win10开机出现recovery there was a problem with a device connected to your pc
  • 原文地址:https://www.cnblogs.com/jsdy/p/12398562.html
Copyright © 2011-2022 走看看