final finally finalize

 三个相似的单词在java里有啥区别和联系呢?

  • 没有啥联系,final 用来修饰类,方法,属性。finally 搭配try ,表示finally里的程序一定执行。finalize则是用来垃圾回收时进行资源的回收,在对象回收前被执行,因此finalize不再推荐使用,对垃圾回收的性能影响很大。
  • final 修饰有啥用处呢?
  • final 修饰类表示类不能被继承,可以保证类的不可变,以保证类行为不会发生改变以导致安全问题。比如在java里很多基础的类都是final的。String、Integer这些基础包装类都是final的。
  • final 修饰属性,表示属性不可改变。但是该属性的行为是可变的,比如修饰一个list,那么list.add()方法执行也不会报错。可见修饰不可变对象引用,是指该引用不能再指向其他对象的引用。
  • final 修饰方法表示方法不可被重写,保证方法的不可变。
  • 实现真正的不可变类:
  • 类是final的,类的成员变量是private  final 的,切没有set方法。
  • 对象的创建通过深度拷贝实现。
  • finally 常用来做啥?
  • finally 通常用来保证资源的回收,关闭。比如文件的关闭,流的关闭,数据库连接的回收。
  • 有一种情况finally里的程序不会执行,这是测试就不会打印出来。
    public static void main(String[] args) {
    
    		try {
    			System.exit(0);
    		}finally {
    			System.out.println("ceshi ");
    		}
    	}

     

  • finalize 现在通常提倡使用Cleaner
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值