学习目标:
- Java面试题
- MySQL面试题
- Redis面试题
学习内容:
2024-01-26:
- Java的异常体系
- Java有哪几种方式创建线程来执行任务
具体内容:
Java的异常体系
概念
Java的所有异常都来自父类Throwable
Throwable有两个子类,Error和Exception
Error表示严重错误,比如Java.lang.OutOfMemoryError(内存溢出)等,通常这类异常程序无法自行解决,可能是服务器硬件层面、操作系统层面的问题,所以一般也不建议捕获此类异常,意义不大,程序可能已经无法运行,挂了。
Exception表示异常,该类异常表示可以通过程序内部自行解决,比如NullPointerException等。可以通过捕获该类异常进行处理
Exception的子类通常又分为RuntimeException和非RuntimeException
RuntimeException就表示运行期异常,属于代码执行过程中抛出的,该类异常通常是程序执行逻辑异常,可以进行捕获避免,比如空指针、数组越界等。
非RuntimeException表示非运行期异常,也就是所谓的检查异常,是必须要处理的异常,不处理则程序不能检查一场通过,如IOException、SQLException和用户自定义异常
Java有哪几种方式创建线程来执行任务
1、继承Thread类
2、实现Runnable接口(没有继承限制,不会影响类结构)
注:上面两种无法获取线程当中的返回值
3、实现Callable接口
注:上面三种都是通过new Thread对象
4、使用线程池方式创建
总结:几种方式底层均是基于实现Runnable接口。普遍答案3(不加第4点)-4种(加第4点)