「8」进大厂必须掌握的面试题-Java面试-异常和线程( 二 )


  1. String getMessage() –此方法返回Throwable消息字符串 , 并且可以在通过其构造函数创建异常时提供该消息 。
  2. String getLocalizedMessage()–提供此方法 , 以便子类可以重写它以向调用程序提供特定于语言环境的消息 。 此方法的可抛出类实现仅使用getMessage()方法即可返回异常消息 。
  3. Synchronized Throwable getCause() –此方法返回异常原因 , 或者返回null id , 原因未知 。
  4. String toString() –此方法以String格式返回有关Throwable的信息 , 返回的String包含Throwable类的名称和本地化消息 。
  5. void printStackTrace() –此方法将堆栈跟踪信息打印到标准错误流 , 此方法已重载 , 我们可以传递PrintStream或PrintWriter作为参数 , 以将堆栈跟踪信息写入文件或流 。
Q9 。 进程和线程之间有什么区别?Process Thread 定义 程序的执行实例称为进程 。线程是进程的子集 。通讯 进程必须使用进程间通信与同级进程进行通信 。线程可以直接与其进程中的其他线程通信 。控制 进程只能控制子进程 。线程可以对同一进程的线程行使相当大的控制权 。变化 父进程中的任何更改都不会影响子进程 。主线程中的任何更改都可能影响该进程其他线程的行为 。记忆 在单独的内存空间中运行 。在共享内存空间中运行 。受控制于 进程由操作系统控制 。线程由程序中的程序员控制 。依存关系 流程是独立的 。线程是依赖的 。
Q10 。 什么是finally块?有没有什么情况下最终将不会执行?最终块是始终执行一组语句的块 。 它始终与try块相关联 , 无论是否发生任何异常 。是的 , 如果程序通过调用System.exit()或导致致命错误(导致进程中止)退出 , 则最终将不会执行 。
Q11 。 什么是同步?同步是指多线程 。 同步的代码块一次只能由一个线程执行 。 由于Java支持执行多个线程 , 因此两个或多个线程可以访问相同的字段或对象 。 同步是使所有并发线程在执行中保持同步的过程 。 同步避免了由于共享内存视图不一致而导致的内存一致性错误 。 当一个方法被声明为已同步时 , 线程将保持该方法对象的监视器 。 如果另一个线程正在执行同步方法 , 则该线程将被阻塞 , 直到该线程释放监视器 。
「8」进大厂必须掌握的面试题-Java面试-异常和线程文章插图
Q12 。 我们可以在单个try块下写入多个catch块吗?是的 , 我们可以在单个try块下包含多个catch块 , 但是方法应从特定到一般 。 让我们通过一个编程示例来理解这一点 。
public class Example {public static void main(String args[]) {try {int a[] = new int[10];a[10] = 10 / 0;} catch (ArithmeticException e) {System.out.println("Arithmetic exception in first catch block");} catch (ArrayIndexOutOfBoundsException e) {System.out.println("Array index out of bounds in second catch block");} catch (Exception e) {System.out.println("Any exception in third catch block");}}}Q13 。 Java异常类的重要方法有哪些?方法在基类Throwable中定义 。 Java异常类的一些重要方法如下所述 。
  1. String getMessage() –此方法返回有关异常的消息String 。 可以通过其构造函数提供消息 。
  2. public StackTraceElement [] getStackTrace()–此方法返回一个数组 , 其中包含堆栈跟踪中的每个元素 。 索引0处的元素表示调用堆栈的顶部 , 而数组中的最后一个元素表示调用堆栈底部的方法 。
  3. 同步的Throwable getCause() –此方法返回Throwable对象表示的异常原因或null ID 。
  4. String toString() –此方法以String格式返回信息 。 返回的字符串包含Throwable类的名称和本地化消息 。