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

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

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

  • 相关阅读:
    超实用的 Nginx 极简教程,覆盖了常用场景(转)
    阿里云Redis开发规范(转)
    什么是 AQS ?
    缓存穿透、缓存并发、缓存失效之思路变迁(转)
    看不懂JDK8的流操作?5分钟带你入门(转)
    Redis 分布式锁的正确实现方式(转)
    urllib-Proxy
    基本urllib库
    Windows DOS 命令(持续更新...)
    java 位运算符
  • 原文地址:https://www.cnblogs.com/jsdy/p/12398562.html
Copyright © 2011-2022 走看看