• Java面试(二)


    1  java中Exception 和 Error 区别

    都是Throwable的子类。RuntimeException继承自Exception。

       Error和RuntimeException及其子类是未检查异常;其他异常是受检查异常。

    Exception:需要捕获或者需要处理的异常。用于用户程序可以捕获的异常。

    Error:定义了不期望被用户程序捕获的异常(系统崩溃,虚拟机错,内存不足,方法调用栈溢出,比如StackOverFlowError, OutOfMemoryError)。系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题,比如:内存资源不足,对于这种错误,程序基本无能为力。

    运行时异常:除数为0;错误类型转换;数组越界,空指针。(如果出现这种错,一定是程序猿的错误)

    受检查异常:要有try catch或 throws声明。

    2  finally代码块和  finalize() 方法区别?

    注意:当try和catch中有return,finally仍然会执行。

     Finally是在return后面的表达式运算后执行的,所以函数返回值是在finally执行前确定的。无论finally中代码如何,return的值都确定,是之前保存的值。

    Finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值,而是finally中return的值。

    Finalize是object类的一个方法,在对象被垃圾回收之前由java 虚拟机来调用。

    3  throw 和 thrwos

    throw : 代码中抛出异常。 Throws: 表明方法不能处理,而抛出的异常,多个异常用逗号分。

    4 finally

    无论是否抛出异常,finally中的都要执行。主要是做一些释放资源之类的事情。比如:I/O缓冲区,竹居裤链接。

    5 异常处理完后,Exception对象会发生什么变化?

      下一个垃圾回收过程中被回收掉。

    6  Java中两种异常类型是什么?他们有什么区别?

    受检查异常(checked): 用try-catch捕获处理;或者用throws在方法上声明。

    不受检查异常(unchecked):不需要在方法或构造函数上声明,异常可以传播到方法外面。

    7 static块:在类加载的时候执行一次,一般用来出回话静态变量和调用静态方法。

    A继承B,A a = new A();

     B静态代码块-》A的静态代码块-》B非静态代码块-》B构造函数-》A的非静态代码块-》A构造函数。

    总结:静态代码块总是最先执行。

    非静态代码块跟非静态方法一样,跟对象有关,但是非静态代码块在构造函数之前执行。

    父类非静态大码块,构造函数执行完后(父类构造完),才开始执行子类的非静态代码块和构造函数。

  • 相关阅读:
    Mybatis入门环境搭建
    sts,eclipse里面配置tomcat
    IDEA-导入本地所需要的jar包
    Java使用poi生成Excel,生成两种表格下拉框
    Java使用poi生成Excel表格
    Java synchronized(this)锁住的是什么
    Java多线程之使用ATM与柜台对同一账户取钱
    Java多线程对同一个对象进行操作
    Java Socket通信实例
    java基本数据类型和引用数据类型的区别
  • 原文地址:https://www.cnblogs.com/liufei1983/p/7150049.html
Copyright © 2020-2023  润新知