您的位置:首页 > 编程语言 > Java开发

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。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 线程 exception