网站首页 语言 会计 电脑 医学 资格证 职场 文艺体育 范文
当前位置:书香门第 > 计算机 > java语言

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

栏目: java语言 / 发布于: / 人气:2.17W

在java 基础中,final、finally和finalize的区别有哪些?下面本站小编带大家一起来看看详细内容,希望对大家有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!

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

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

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

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

  如下代码程序:

package ;

/**

  * 面试题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();

tln(od());

}

}

class Demo {

public int method() {

int x = 10;

try {

x = 20;

tln(1/0);

return x;

} catch (Exception e) {

x = 30;

return x;

} finally {

/*

* finally中不应当有return语句

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

*/

x = 40;

return 40;

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

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

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

}

}

}

10Java中HashMap和TreeMap的区别深