java基础07-final、finally和finalize的区别是什么?

1.final用于声明属性、方法和类,分别表示属性不可改变(常量),方法不可覆盖类不可继承
2.finally是异常处理语句结构的一部分,表示总是执行
3. finalize是java.lang.Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,供垃圾收集时的其他资源回收,例如关闭文件等。

用法:如果一个类被声明为final,就意味着它不能再派生出新的子类,不能作为父类被继承。方法声明为final,它们在使用中将不被改变,只能使用,不能重载。被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改。
而finally是异常处理的一部分,用于释放资源。有finally,代码肯定会执行它,除非在finally之前JVM退出,才不会执行。finalize是Object类的一个方法,用于垃圾回收。
代码举例:

public class Example {  
    // final的例子  
    final int x = 10; // 常量,不可改变  
    final void show() { // 方法不可覆盖  
        System.out.println("This is a final method.");  
    }  
    final class InnerClass { // 类不可继承  
        void show() {  
            System.out.println("This is a final inner class.");  
        }  
    }  
 
    // finalize的例子(注意:finalize方法已经在Java 9中被标记为已过时,因此这个例子在实际应用中已经很少使用)  
    @Override  
    protected void finalize() throws Throwable { // Object类的finalize方法  
        System.out.println("finalize method called.");  
        super.finalize(); // 调用父类的finalize方法  
    }  
}
    // finally的例子  
    public static void main(String[] args) {  
        try {  
            //代码块
        } catch (Exception e) {  
            System.out.println("执行遇到异常");  
        } finally {  
            System.out.println("无论代码是否抛出异常,总会走到这个方法里");  
        }  
    }  

你可能感兴趣的:(Java开发1天1道面试题,java,开发语言)