QuarkXPress centos 程序设计 Backbonejs vue论坛 vue开发 ajax的get请求 python数据挖掘实战pdf dplayer不能全屏 docker保存镜像 python界面 pythonsocket编程 普通话网上报名 python中sort函数 python加注释 python图形界面开发 python函数内定义函数 javaapplet java环境配置 java字符串替换 shell编程学习 忧思华光玉攻略 qq免安装 cfqq网吧任务 苹果双微信 idea导出jar包 vue引入第三方js eagle软件 小程序游戏源码 草图大师版本转换器 拳皇2005出招表 alert换行 php完全自学手册 抖音道具 SQLite编辑器 ansys安装 人物建模教程 set函数 金万维动态域名 红米手机连接电脑
当前位置: 首页 > 学习教程  > 编程语言

final finally finalize的区别联系(详解)

2020/7/24 10:27:46 文章标签:

final finally finalize的区别及作用

首先 先来阐述一下每一个的作用

final

final的翻译意思就是决定性的,不可改变的

final 修饰符的一种 修饰的类 不能被继承

​ 修饰方法 不能被重写

​ 修饰变量(基本类型) 不能被重新赋值 当变量为引用类型时 只能说明引用地址不可变.

这里涉及到引用类型和基本类型

那么 简单说一下什么是引用类型 什么是基本类型?

基本数据类型很好理解我前面也已经说到了 就是八种基本数据类型

这就简单了 剩下的数据类型都是引用类型 主要包含什么呢?

主要包含:类 接口类型 数组类型 枚举类型 注解类型

关于基本类型和引用类型下期进行详解 这里就简单说一下

言归正传

现在是不是理解了final是干什么用的了

finally

首先 从翻译的意思来看 是最终 最后

接下来我们再来分析一下finally

大家可以想一下finally是在哪里使用的?是不是在处理异常时使用

没错 try catch finally是异常捕获处理的整体流程,finally就是不管有没有异常

也就是无论捕获到还是没有捕获到异常,都要被执行的部分.

至于还能不能用在其他地方 我还真没遇到过 不知道有没有其他地方会使用

下面说一下finally也是有不被执行的情况出现的

第一种情况:

程序在进入finally之前挂掉了

做个示例:

    public static void MyException(){
        try {
            System.out.println("try");
            System.exit(0);
            return;
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("catch");
        }finally {
            System.out.println("finally");
        }
    }

上面是我定义的一个静态方法

当程序走到**System.exit(0);**时 程序退出 程序都挂掉了 finally里面的还怎么走啊!

第二种情况:

程序没有进入异常捕获流程

什么意思呢?就是压根就没执行到异常捕获 程序就挂了

第三种情况:

try中死循环或者cache中死循环

    public static void MyException(){
        try {
            System.out.println("try");
          for (int i=1;i>0;i++){
              System.out.println(i);
          }
        }catch (Exception e){
            e.printStackTrace();
            System.out.println("catch");
        }finally {
            System.out.println("finally");
        }
    }

你看 try中的 for循环都不会结束 怎么可能会执行下面的finally

总结: 只有程序非正常执行时 finally部分才不会被执行.

finalize

finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC(垃圾收集 Garbage Collection )在回收对象之前调用该方法。不保证一定执行,也不保证会执行完毕。


本文链接: http://www.dtmao.cc/news_show_50271.shtml

附件下载

上一篇:第十四周

下一篇:HSRP(2020.7.17)

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?