final、finally、finalize区别

final:

final关键字 简要说一下final关键字,final可以用来修饰什么

final在类上表示该类不可继承

final在方法上表示该方法不可被继承重写

final在变量上表示该变量初始化后不可修改

好处:提高了性能,因为系统在初始化时候就加载了该变量,final在多线程下可以安全的共享变量

finally:

用于try/catch语句中,一般一定会执行的代码块,常用于释放资源

例如:

 public static void main(String[] args) {
        System.out.println(test(null));
        System.out.println(test("0"));
        System.out.println(test("a11"));
    }
    public static Integer test(String str) {
        try {
            return str.charAt(0) - ‘0‘;
        } catch (NullPointerException e1) {
            System.out.println(11);
            return 1;
        } catch (StringIndexOutOfBoundsException e2) {
            return 2;
        }catch (Exception e3) {
            return 3;
        }finally{
            System.out.println(4);//这个一定会在return之前执行
//            return 4;//这个return会顶替掉前面的其它return
        }
    }

执行结果:

11
4
1
----------
4
0
----------
4
49

解释:finally一般一定会在返回之前执行(也有特殊情况,比如中断程序System.exit(0) ),一般用于释放资源

finalize:

定义在java.lang.Object中,所以每个对象都有,它在gc启动,该对象被回收时调用。

原文地址:https://www.cnblogs.com/wzk-0000/p/9876660.html

时间: 2024-11-05 19:25:53

final、finally、finalize区别的相关文章

Final,finally,finalize区别

final- 修饰符(关键字)如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为 abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载. finally- 在异常处理时提供 finally 块来执行任何清除操作.如果抛出一个异常,那么相匹配的 catch 子句就会

谈谈 final finally finalize 区别

声明 本篇所涉及的提问,正文的知识点,全都来自于杨晓峰的<Java核心技术36讲>,当然,我并不会全文照搬过来,毕竟这是付费的课程,应该会涉及到侵权之类的问题. 所以,本篇正文中的知识点,是我从课程中将知识点消耗后,用个人的理解.观念所表达出来的文字,参考了原文,但由于是个人理解,因此不保证观点完全正确,也不代表错误的观点是课程所表达的.如果这样仍旧还是侵权了,请告知,会将发表的文章删掉. 当然,如果你对此课程有兴趣,建议你自己也购买一下,新用户立减 30,微信扫码订阅时还可以返现 6 元,相

【动力节点java培训】final, finally, finalize的区别

[动力节点java培训]final, finally, finalize的区别 final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.finally是异常处理语句结构的一部分,表示总是执行.finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等. 如果您对动力节点有兴趣,可以登录官网看看免费教学视频:http://dwz.cn/29yALNN java学习交流QQ群:425

Android源码中final关键字的用法及final,finally,finalize的区别

Android开发的学习流程 final,finally,finalize的区别 Android的发展越来越快,Android开发人员越来越多,当两种情况碰撞,在诸多开发者中跟紧Android步伐脱颖而出就显得十分必要,虽然Android开发行业薪资高,潜力大,但人往高处走,有更大的上升空间就一定要抓住机会,Android开发行业其实很简单,高技能行业行业唯一重要的要求就是技能,所以学好Android开发直接关系到未来的职业发展,千锋Android培训机构作为行业最具权威的Android研发和人

final、finalize、finally

final.finalize.finally final:用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承. 说明:final 声明的成员变量,必须在声明的同时赋值.final 声明的局部变量和普通的局部变量一样,可以在声明的同时不赋初值,但是在使用前必须赋值. finalize 是Object 类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等. finally:return.continue和break

final .....finally ...... 和Finalize ......区别

一.性质不同 (1)final为关键字: (2)finalize()为方法: (3)finally为为区块标志,用于try语句中: 二.作用 (1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍): (2)finalize()方法在Object中进行了定义,用于在对象"消失"时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数:用户自定义时,用于释放对象占用的资源(比如进行I/0操作): (3)fi

Java中final,finally和finalize区别

Day11_SHJavaTraing_4-18-2017 1.final-修饰符(关键字) ①final修饰类,表示该类不可被继承 ②final修饰函数,表示继承这个类的子类中不能重写这个函数 ③final修饰变量,表示该变量的值不可改变,必须在声明时给定初值.如果修饰的是引用类型的变量,则变量中保存的引用(地址)不可改变,但是引用指向的堆内存中的数据可以改变2.finally-在异常处理时finally代码块一定会被执行3.finalize-Object类的一个方法 使用finalize()方

final, finally, finalize的区别

finalfinal修饰类,方法,基本类型变量,引用的时候分别有不同的意思修饰类 表示该类不能被继承修饰方法 表示该方法不能被重写修饰基本类型变量 表示该变量只能被赋值一次修饰引用 表示该引用只能一次指向对象的机会finallyfinally 是用于异常处理的场面,无论是否有异常抛出,都会执行finalizefinalize是Object的方法,所有类都继承了该方法. 当一个对象满足垃圾回收的条件,并且被回收的时候,其finalize()方法就会被调用

Java中的final, finally, finalize的区别

final修饰符(关键字),如果一个类被声明为final,意味着它不能再派生出新的子类,不能作为父类被继承.因此一个类不能既被声明为abstract的,又被声明为final的.将变量或方法声明为final,可以保证它们在使用中不被改变.被声明为final的变量必须在声明时给定初值,而在以后的引用中只能读取,不可修改.被声明为final的方法也同样只能使用,不能重载.方法的参数被final修饰表示在方法体内,该参数的值不可以被修改. finally在异常处理时提供finally块来执行任何清除操作

Java之final、finalize、finally的区别

一.性质不同(1)final为关键字:(2)finalize()为方法:(3)finally为为区块标志,用于try语句中:二.作用(1)final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍):(2)finalize()方法在Object中进行了定义,用于在对象“消失”时,由JVM进行调用用于对对象进行垃圾回收,类似于C++中的析构函数:用户自定义时,用于释放对象占用的资源(比如进行I/0操作):(3)finally{}用于标识代