Java中final、finally 和 finalize 的区别

1.final:Java中的修饰符、关键字

final是java中的修饰符,用于修饰属性(变量)、方法、类。代表属性值不可修改、方法不可覆盖、类不可继承。

当变量被声明final时,必须要给定初值,而在以后的引用中只能读取,不能修改。

实例:


上图我们定义了final 字符串,当我们修改这个字符串变量时,代码会编译报错。


当方法被声明final时,改方法只能使用,不能重载重写。

实例:




当类被final声明时,意味着改类不能被继承。所以,一个类本能被同时声明abstract抽象类和final类。

实例:



2.finally

finally是java异常处理机制的一部分。不管异常有没有发生,处在finally里面的代码都会执行。使用finally可以维护对象的内部转态,并且可以清理非内存资源。特别在使用java资源的情况下,如IO流,如果把close()方法都放在finally里面,就会大大减少程序资源的开销。

try {
	//异常捕获
} catch (Exception e) {
	//处理异常
}finally{
	//必须执行的代码,如close方法等
}

3.finalize

finalize是java中的一个方法名。当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。finalize 的主要目的是在不可撤消地丢弃对象之前执行清除操作。例如,表示输入/输出连接的对象的 finalize 方法可执行显式 I/O 事务,以便在永久丢弃对象之前中断连接。对给定的任何对象,java虚拟机最多只调用一次finalize()方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值