Java学习-基础-02

Java 学习-基础-02

11.什么是字节码?采用字节码的好处是什么

  • 字节码:
    Java 引入了虚拟机的概念,即在机器和 编译程序 之间,加入了一层抽象的虚拟机。 编译程序 只需面向虚拟机,生成虚拟机能理解的代码,然后由解释器将虚拟机代码转换成特定的机器代码来执行。这种虚拟机能理解的代码就是 字节码 。(即扩展名为 .class 的文件)。

  • 采用字节码的好处:

    • 编译型语言效率比解释型语言高
    • 字节码面向虚拟机,不针对任一操作系统,可以在任何操作系统上运行
    • 在编译期间,编译器可以检查代码的正确性,并且可以提供更多的信息

12.Java 中的异常体系

体系图

Java 异常分为 **Error(程序无法处理的错误)**,和 **Exception(程序本身可以处理的异常)**。 这两类均继承 Throwable

Error 常见的有 StackOverFlowError、OutOfMemoryError 等等。
Exception 分为 运行时异常编译时异常

  • 运行时异常
    可以利用 try catch 捕获,也可以通过 throws 来声明。

RuntimeException 是运行期异常,可以被捕获和处理。常见的 RuntimeException 有:

  • NullPointerException 空指针异常
  • ArrayIndexOutOfBoundsException 数组越界异常
  • ArithmeticException 除数为 0 异常
  • ClassCastException 类型强制转换异常

编译时异常 必须处理,不处理的话,编译器会报错。
除 RuntimeException 以外的异常,都是编译时异常。在编译阶段 Java 编译器会检查此类异常并强制程序捕获和处理异常,即强制要求程序在可能出现此类异常的地方进行捕获和处理。常见的有:

  • IOException 输入输出异常
  • InterruptedException 线程中断异常
  • ClassNotFoundException 类未找到异常
  • NoSuchMethodException 方法未找到异常
  • SQLException SQL 异常

throw和throws的区别

  • throw 一般是用在方法体内部,由开发者定义当程序语句出现问题后,抛出异常
  • throws 一般用于方法声明上,代表该方法可能会抛出的异常列表

13


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!