Java中final、finally、finalize的区别

1、final

    是关键字,用来修饰常量、方法、类。

    有以下作用:

修饰的是一个常量:该值无法修改。注意:如果修饰的是一个成员变量,必须当场赋值,否则会编译报错。

修饰的是一个方法:该方法不能被重写,但能被子类继承使用。 注意:类的private方法会被隐式的指定为final方法

修饰的是一个类: 该类不能被继承。例如String类。

2、finally

作为异常处理的一个代码块,不管有没有异常,该代码块最终都会执行。

经常被用在释放资源的情况下。(例如关闭数据库连接) 

3、finalize

是Object类的一个方法,而Object类又是所有类的超类。

是Java垃圾回收处理机制时调用的一个方法。当我们调用System.gc()方法时,由垃圾回收器调用finalize(),回收垃圾。

Java中的垃圾回收处理的时间是随机性的,并不是你调用GC,它就立刻去回收没用的对象。不像C++语言一样。

 说到垃圾回收处理机制这块,就有必要说明一下了。

垃圾回收机制它是与语言特性和运行环境所影响的。像C++,最终是机器码文件,没有虚拟机帮它去处理这些垃圾,只能码农去自行处理了。

而Java是运行在虚拟机上,生成的是字节码文件去运行在虚拟机上,通过虚拟机去生成机器码。所以呢,垃圾回收机制是运行在虚拟机上的,这也就是Java开发时基本不用关心内存开销问题,有虚拟机的GC啊。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值