java final和finally的区别
java中的final和finally有以下区别:
1. final:是一个修饰符,表示最终的,不可更改的。
- 修饰类:不能被继承。
- 修饰方法:不能被重写。
- 修饰变量:只能被赋值一次,不能被重新赋值,其实就是个常量。
- 修饰引用类型,地址值不能变,引用可变。
- 修饰成员变量:要在构造方法完成前,进行初始化。
2. finally:是java中的一种异常处理机制,用在try,catch后。
- finally中的代码一定会执行,无论try块中的代码是否引发异常,catch是否匹配成功。
- 如果finally中有return语句,当try执行到return时会执行finally中的代码,其中有return就直接返回了,try中的return失效。
- 如果finally中不含return语句,当执行到try中的return时,它会被保存等待finally执行完毕后返回,这个时候无论finally内部如何改变这个值,都不会影响返回结果。