这篇文章主要介绍了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) {
x = 30;
return x;
} finally {
/*
* finally中不应当有return语句
* 否则该方法一定会返回这里的内容
*/
x = 40;
return 40;
//千万不要在finally里面写返回语句,因为finally的作用是
//释放资源,是肯定会执行的,如果在这里面写返回语句,那么try和cache
//的结果都会被改变,所以这么写就是犯罪!!!
}
}
}【相关推荐】
1. 特别推荐:“php程序员工具箱”V0.1版本下载
2. Java免费视频教程
3. JAVA教程手册
以上就是详解final、finally和finalize的不同之处的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号