Java认证考试实例疑难辨析(1)
来源:互联网 发布:股票技术分析软件 编辑:程序博客网 时间:2024/05/22 02:14
1.
【知识点】
(1)Thread(线程):
线程对象创建后,可以调用start()方法启动,但线程实际开始运行时间点是由系统调度决定的,不能认为调用start()方法后一定会立即执行线程;
(2)Exception(异常):Java语言中异常有三种类型:
(a)checked exception(受检异常),这类异常是最常见异常,在编写应用程序时可以预期它会发生,并且通过try…catch…finally语句块捕捉,以便程序能从异常中恢复运行,防止出现程序崩溃,比如文件处理中的FileNotFoundException异常。
(b)error(错误),这类异常是应用程序编写时无法预期的,一旦发生也不可恢复运行。通常是由系统或硬件故障等外部原因造成,由于错误无法预期因此通常不采用try…catch…finally语句块捕捉。
(c)runtime exception(运行时异常),这类异常虽然也是应用程序内部原因造成的,但应用程序通常也是无法预期它的发生,发生后也无法让程序恢复运行,比如NullPointerException,虽然应用程序能捕捉这些异常,但由于这类异常发生后无法让程序恢复运行,因此通常也不需要try…catch…finally语句块捕捉。
Error、RuntiomeException及其子类都称为unchecked exception(非检异常),Java程序设计语言并不要求通过try…catch…finally语句块捕捉unchecked exception,
【例题】
Given:
public class Threads2 implements Runnable {
public void run() {
System.out.println("run.");
throw new RuntimeException("Problem");
}
public static void main(String[]args) {
Thread t = new Thread(newThreads2());
t.start();
System.out.println("End ofmethod.");
}
}
Which two can be results? (Choose two.)
A. java.lang.RuntimeException: Problem
B. run.
java.lang.RuntimeException: Problem
C. End of method.
java.lang.RuntimeException: Problem
D. End of method.
run.
java.lang.RuntimeException: Problem
E. run.
java.lang.RuntimeException: Problem
End of method.
【Answer】 DE
【例题辨析】
(1)run()方法有语句:
throw new RuntimeException("Problem");
而主程序没有捕捉该异常,似乎有错,但RuntimeException属于unchecked exception,按Java语法规则并不需要捕捉,因此可以编译运行,但运行时抛出该异常后将显示如下信息并中止执行:
Exception in thread "Thread-0"run.
java.lang.RuntimeException: Problem
atThreads2.run(Threads2.java:7)
atjava.lang.Thread.run(Unknown Source)
(2) 线程启动后,实际运行时间点是由系统决定的,因此System.out.println("End of method.");可能先于线程中run()方法执行,也可能在run()方法之后执行,因此正确答案应该是DE。- Java认证考试实例疑难辨析(1)
- Java认证考试实例疑难辨析(2)
- Java认证考试实例疑难辨析(3)
- Java认证考试实例疑难辨析(4)
- Java认证考试实例疑难辨析(5)
- Java认证考试实例疑难辨析(6)
- Java认证考试实例疑难辨析(7)
- Java认证考试实例疑难辨析(8)
- Java认证考试实例疑难辨析(9)
- Java认证考试实例疑难辨析(10)
- Java认证考试实例疑难辨析(11)
- Java认证考试实例疑难辨析(12)
- Java认证考试实例疑难辨析(13)
- Java 认证考试学习笔记(1)
- 最大熵疑难辨析
- 一些Java认证考试
- Java 认证考试
- java认证考试
- go语言入门的资料
- poj 3368 Frequent values(RMQ)
- Docker中使用多个volume-from的一个问题
- 十六进制转十进制
- SpeedTree - 导入模型到UE4
- Java认证考试实例疑难辨析(1)
- CF624A - Save Luke
- 获取APK的sha1
- 在VisualStudio中嵌入汇编代码
- CF624B - Making a String
- 虚幻4里的地图动态加载
- [剑指offer-1351]数组中只出现一次的数字
- 微信好友数据统计,能测出删除你的好友
- 在Java程序设计中,设置环境变量path和classpath的作用分别是什么?