• 在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抛出异常,把问题交给调用者去解决

  • 相关阅读:
    RSA加密
    各种正则
    用Fragment制作的Tab页面产生的UI重叠问题
    Android源码下载
    Android Studio使用百度地图问题总结
    Android获取网络类型
    Android Studio类中实现Serializable自动生成serialVersionUID
    【Android开发】如何设计开发一款Android App
    UIViewController生命周期
    微信支付开发经验分享
  • 原文地址:https://www.cnblogs.com/zsping/p/5542510.html
Copyright © 2020-2023  润新知