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

2025-05-29 0 40

java 基础之final、finallyfinalize的区别

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

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

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

如下代码程序:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49
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

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

}

}

}

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

原文链接:http://blog.csdn.net/qian_ch/article/details/54972063

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 java 基础之final、finally和finalize的区别 https://www.kuaiidc.com/116608.html

相关文章

发表评论
暂无评论