final、finally和finalize的区别
来源:互联网 发布:联通 套餐 4g数据副卡 编辑:程序博客网 时间:2024/06/10 17:10
1.fianl主要用于修饰类、变量和方法,其中修饰的类为不可变类,该类不可以被继承
public final class finalClass{ ...}
修饰的方法不可以被重写
public final void finalMethod(){ ...}
修饰的变量为变常量,这种变量经过一次初始化之后就不能在被修改值了。初始化final变量有四种情况:
1.所有的final变量都可以在定义的时候就初始化public final int a = 1;public static final int sa = 1;2.非静态final变量可以在非静态初始化块中初始化,不可以在静态初始化块中被初始化public final int b;{ a = 1;}3.静态final变量与上面的情况相反public static final int sb;static{ sb = 1;}4.非静态final变量可以在构造方法中被初始化,但是静态final变量不可以public final int c;public A(){ c = 1;}
2.fianlly用于处理异常捕获的try/catch语句中,不管try/catch语句最终会怎样,finally语句的内容都会被执行,就算是return也会在return之前执行finally语句块里面的内容
try{ throw new Exception("自定义异常");}catch(Exception e){ System.out.println(e.getMessage());}finally{ System.out.println("就算你抛出了异常,也不能打断我的执行");}
3.fianlize是一个方法,它的原生类是java.lang.Object类,该方法是GC运行机制的一部分,在GC清理它所从属的对象时自动调用,如果执行它的过程中抛出了无法捕获的异常,GC将会终止对这个对象的清理,直到下一次GC才会继续调用finalize方法对这个对象进行清理
public class defineClass{ @Override public void finalize(){ System.out.println("执行了finalize方法"); } public static void main(String[] args){ defineClass dc = new defineClass(); dc = null; //调用GC System.gc(); //也可以Runtime.getRuntime().gc(); }}
这是java的面试题,参照出处:http://lib.csdn.net/article/javase/43743
0 0
- final 和finally和finalize的区别
- final、finally和finalize的区别[转载]
- final、finally和finalize的区别
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别
- final、finally和finalize的区别
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别是什么?
- 详解final、finally和finalize的区别
- final、finally和finalize的区别
- final、finally和finalize的区别是什么?
- final、finally和finalize的区别
- final和finally,finalize的区别
- final、finally和finalize的区别是什么?
- C++的链表操作
- windows下,源码配置Laravel5.3
- 一种新型的数据平滑滤波算法
- 迭代字典中的key和value
- Linux下使用samba工具共享文件
- final、finally和finalize的区别
- MYSQL问题
- 树与二叉树的概念
- 双重检验锁定单例模式的优化写法(非volatile,全版本jvm通用)
- 三款主流静态源代码安全检测工具比较
- tolua动态注册对象的使用
- asp.net头部指令<%@%>内的各项含义
- Linux下给自己的应用程序创建一个桌面启动图标
- SAP接口编程之 NCo3.0系列(05) : Table作为输入参数