Java认证考试实例疑难辨析(1)
2016-02-08 23:46
375 查看
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。
【知识点】
(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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树