final、finally与finalize三者的区别
2017-04-03 13:12
363 查看
摘要: final为常量关键字,而finally为异常关键字,finalize为object自带方法名。看到这个题目,感觉像是高中题目一样。出题者用心良苦啊,将这个三个联系起来,考察java基本功。在实际中finalize这个用得最少,而其他两个都很熟悉了。但若想流畅的表达三者区别,还行自己好好理一理。
一、final这个关键字在Java中代表不可改变的,可用来修饰类,方法,变量。
对class来说,用法如:final class A{}代表类A为终极类,不能被继承,也就没有子类之说与接口实现者之说。
对method来说,用法如:public final void test(){} 代表此方法不能被重写。
对variable来说,必须在声明时赋值,且不能再改变。
先看看这个测试类:
二、finally关键字用在异常处理中,用于处理异常后的清理工作,实际中一般用于关闭文件流,释放资源等操作。
打印结果:
三、finalize方法,为Object基类自带方法,在实际中还没用上,在垃圾回收之前由这个方法进行清理工作,重写Object的这个方法自定义整理工作。
打印如下:
———–finalize———-0
———–finalize———-1
———–finalize———-2
———–finalize———-3
———–finalize———-4
———–finalize———-5
一、final这个关键字在Java中代表不可改变的,可用来修饰类,方法,变量。
对class来说,用法如:final class A{}代表类A为终极类,不能被继承,也就没有子类之说与接口实现者之说。
对method来说,用法如:public final void test(){} 代表此方法不能被重写。
对variable来说,必须在声明时赋值,且不能再改变。
先看看这个测试类:
public class Test { int i =1; final Test t = new Test(); // Test对象引用变量t不能再指向其他Test对象。但可以通过t来改变此对象中的非常量属性值。 public final void test(){ final int i = 1;//final修饰的变量必须在声明时赋值,且不能在改变。 t.i++; } }
二、finally关键字用在异常处理中,用于处理异常后的清理工作,实际中一般用于关闭文件流,释放资源等操作。
System.out.println("----game start----"); try { System.out.println("----try----"); return ; }catch(NullPointerException e){ System.out.println("----catch----"); }finally{ System.out.println("----finally----"); } System.out.println("----game over----");
打印结果:
----game start---- ----try---- ----finally----
三、finalize方法,为Object基类自带方法,在实际中还没用上,在垃圾回收之前由这个方法进行清理工作,重写Object的这个方法自定义整理工作。
public class Test { public static void main(String[] args) { // TODO Auto-generated method stub for(int i=0;i<6;i++){ System.gc(); Test t = new Test(); } System.gc();// 若注释此语句,则只打印0-4,这就是Java垃圾回收机制的一个简单验证。 } static int count; protected void finalize() throws Throwable { // TODO Auto-generated method stub super.finalize(); System.out.println("-----------finalize----------"+count++); } }
打印如下:
———–finalize———-0
———–finalize———-1
———–finalize———-2
———–finalize———-3
———–finalize———-4
———–finalize———-5
相关文章推荐
- final、finally、finalize 三者区别
- Final、finally代码块、finalize()三者的区别
- final,finally和finalize三者的区别和联系
- final,finally,finalize 三者区别
- java中final,finally,finalize三者的作用和区别
- final,finally,finalize 三者区别
- Java深究之final、finally、finalize三者的区别
- sealed、final、finally、finalize的区别
- java .final finally 和 finalize的区别,,,,throws 和 throw 的区别,,,异常在继承中的特点
- 【笔记】final, finally, finalize的区别
- java学习笔记(4):final,finally和finalize的区别
- final, finally, finalize的区别
- java中final、finally、finalize的区别
- final、finally和finalize的区别是什么?
- final/finally/finalize的区别
- final,finally,finalize的区别?
- final、finally和finalize的区别
- Java中的final, finally, finalize的区别
- final、finally、finalize的区别
- final, finally, finalize的区别