java中final、finally、finalize的区别

1、final

(1) final成员

      在类中定义变量时,表示这个变量一旦初始化,便不可改变,对基本类型来说是其值不可改变,而对于对象变量来说是其引用不可变。其初始化可以在两个地方,一是定义处,二是在构造函数中。

      对方法中的参数用final定义,对于基本类型的变量,因为在调用方法时基本类型的变量是传值的,在更改这个参数时不会对调用语句产生影响;而对于对象变量,因为对象变量在传递时是传递其引用的,当改变对象变量时会影响到调用语句中的对象变量。因此当不需要改变作为参数的对象变量时,可用final进行声明,以防止无意地修改而影响到调用方法。

(2) final方法

      将方法声明为final有两个原因:第一种,已经知道这个方法提供地功能满足要求,不需扩展,且不允许任何子类覆写这个方法,但仍可继承这个方法时使用final进行声明;第二种,允许编译器将所有对此方法地调用转化为inline调用的机制。

(3) final类

      当将final用于类时,就需要仔细考虑,因为一个final类时无法被任何人继承的,也就意味着此类在一个继承树中是一个叶子类,并且此类无需扩展和修改。对于final类中的成员,可以定义其为final,也可不是final。但对于方法,由于所属类为final的关系,自然成为了final型。

2、finally

      finally关键字是对java异常处理模型的最佳补充。无论是否有异常发生,finally结构使代码总会执行。

3、finalize

      finalize使方法名,java技术允许使用finalize()方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它实在Object类中定义的,因此,所有的类都继承了它。子类覆盖finalize()方法以整理系统资源或者执行其他清理工作。finalize()方法是在垃圾收集器删除对象之前对这个对象调用的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值