技术问 - final、finally和finalize有什么区别

final

final关键字是最终的意思,可修饰类,成员变量,成员方法,参数

修饰类:类不能被继承
修饰方法:方法不能被重写
修饰变量:必须初始化,
    变量是基本类型:值不能更改
    变量是引用类型:内存地址值不能修改

被final修饰的变量必须初始化,初始化的方式有以下几种

  • 在定义的时候初始化

  • 成员变量可以在初始化块中初始化,但不可在静态初始化块中初始化

  • static final 成员变量可以在静态初始化块中初始化,但不可在初始化块中初始化

  • 在类的构造器中初始化,但static final 成员变量不可在构造函数中初始化

finally

finally是异常处理的一部分,只能用在try/catch语句中,并且附带一个语句块,表示这段语句一定会执行,经常被用在需要释放资源的情况下

finalize

finalize是Object类的一个方法,在垃圾回收器执行时会调用被回收对象的finalize(),可以重写此方法来实现对其他资源的回收。需要注意的是,一旦垃圾回收器准备好释放对象占用的空间,将首先调用其finalize(),并且在下一次垃圾回收动作发生时才会真正回收对象占用内存。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容