java语言 百分网手机站

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

时间:2020-08-07 11:39:15 java语言 我要投稿

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

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

  }

  }

  }

  10Java中HashMap和TreeMap的区别深

【java基础之final、finally和finalize的区别】相关文章:

java和js的区别12-05

Java和PHP的区别09-03

Java中Finally关键字09-27

java中String和StringBuffer的区别10-02

Java基础语法之数组的使用10-01

关于java中堆和栈的区别11-27

java中i++和++i的区别11-24

Java语言中substr和substring的区别11-13

Java中对象和引用的具体区别10-05

Java中final关键字用法的讲解11-24