zoukankan      html  css  js  c++  java
  • 在java中异常中的题目---重要的一点

    public  classTest {
    
        public static void main(String[] args) {
           System.out.println(newTest().test());
        }
        staticint test()
        {
           int x = 1;
           try
           {
                x++;
               return x;
           }
           finally
           {
               ++x;
           }
        }
    }

          在try{}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 

       解析:答案是二

        这道题是在try中进行运算结果是二,因为有一个return,所以当结果进行到rueurn的时候,return就会特别霸道的在自己的地盘上开辟一个空间用来存储这个数值,此时运算并不是已经结束了

    下面会在finally中再次进行运算,答案是三,但是这个答案并不是最后的运算结果,因为下一步就会再次返回到finally中进行最后的结果取值,所以当我们最后看到的的结果是二.

    关键字 final    finally      finalize    的区别

    final: 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承.

    内部类访问局部变量,局部变量必须定义成final类型

    finally:是异常处理的语句结构的一部分,表示总是执行

    finalize 是object类的一个方法,在垃圾收集器执行的时候会被调用被收回对象的对此方法,可以覆盖此方法提供垃圾收集时的其他资源回收

    例如:关闭文件等

    运行时异常与一般异常有何异同?

    异常表示程序运行过程中可能出现的非正常状态,运行时异常表示虚拟机的通常操作中可能遇到的异常,是一种常见的错误,java编译器要求方法必须声明抛出可能发生的非运行时异常,但并不是要求必须声明抛出未被捕获的运行时异常

    error 和 ecception 有什么区别?

    error 表示恢复不是不可能但很困难的情况下的一种严重问题,比如内存溢出,不可能指望程序能处理这样的情况

    exception 表示一种设计或者实现问题.也就是说,他表示如果程序运行正常,从不会发生的情况

    throws  和 throw 的区别?

    throws 声明异常:

          在java语言中,我们可以抛出关键字 throws 声明某个方法,可能抛出的异常,throws是可以同时声明多个异常,之间用","隔开

     

    throw 抛出异常:

           在java语言中,我们可以使用关键字throw 来自行抛出某个异常,

      原因:在当前环境中无法解决的参数问题,因此在方法内通过throw抛出异常,把问题交给调用者去解决

  • 相关阅读:
    一个创业成功者原始资本的快速积累
    个性创业先要聚人气才能赚大钱
    26个字母——女性必读
    100个成功创业经验方法谈
    从老板身上偷学的东西,你能吗?
    18岁29岁创业者的“黄金线” 要把握
    数禾云上数据湖最佳实践
    如何做好技术 Team Leader?
    闲鱼是怎么让二手属性抽取准确率达到95%+的?
    解读:云原生下的可观察性发展方向
  • 原文地址:https://www.cnblogs.com/zsping/p/5542510.html
Copyright © 2011-2022 走看看