java 基础之final、finally和finalize的区别

网友投稿 1418 2023-05-17


java 基础之final、finally和finalize的区别

java 基础之final、finally和finalize的区别

1.final可以修饰类,不能被继承;可以修饰方法,不能被重写;可以修饰变量,只能赋值一次。

2.finally是try语句中的语句体,不能单独使用,用来释放资源;

3.finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。

如下代码程序:

package cn.jit.test;

/**

* 面试题1:final,finally和finalize的区别:

*

* final可以修饰类,不能被继承;

* 可以修饰方法,不能被重写

* 可以修饰变量,只能赋值一次。

* finally是try语句中的语句体,不能单独使用,用来释放资源;

* finalize是一个方法,当垃圾回收器确定不存在对该对象的更多引用时,由对象

* 的垃圾回收器调用此方法。

*

*

* 面试题2:如果catch里面有return语句,请问finally的代码还会被执行吗?

* 如果会,请问是在return前还是在return后?

* 会。在return前。

*

* @author Rocky

*

*/

public class FinallyDemo8 {

public static void main(String[] args) {

Demo d = new Demo();

System.out.println(d.method());

}

}

class Demo {

public int method() {

int x = 10;

try {

x = 20;

System.out.println(1/0);

return x;

} catch (Exception e) http://{

x = 30;

return x;

} finally {

/*

* finally中不应当有return语句

* 否则该方法一定会返回这里的内容

*/

x = 40;

return 40;

//千万不要在finally里面写返回语句,因为finally的作用是

//释放资源,是肯定会执行的,如果在这里面写返回语句,那么try和cache

//的结果都会被改变,所以这么写就是犯罪!!!

}

}

}

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:详解Java中的增强 for 循环 foreach
下一篇:详解spring boot配置 ssl
相关文章

 发表评论

暂时没有评论,来抢沙发吧~