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 协议 ,转载请注明出处!