黑马程序员技术交流社区

标题: 这题选什么 [打印本页]

作者: 刘永贵    时间: 2014-3-17 18:24
标题: 这题选什么
编译并运行以下代码的结果是?(  )
import java.io.*;

public class MyThread extends Thread{
        public static void main(String args[]){
                MyThread mt = new MyThread();
                mt.start();
        }

        public void run(){
                try {
                             sleep(200);
                             System.out.println
("Printing from thread run() method");
                } catch ( IOException e) {
                       
                }
        }
}
A. 编译错误.
B. 输出: Printing from thread run() method.
C. 线程先停止运行,在 200毫秒后恢复,并输出 :
Printing from thread run() method.
D. 线程先停止运行,在恰好200毫秒后恢复。
作者: Dijkstra    时间: 2014-3-17 18:45
选 C , sleep(200); //sleep()方法让线程处于休眠状态,不会释放锁,把时间片让给其他线程,等休眠时间结束,再继续执行。
作者: osully    时间: 2014-3-17 19:55
编译失败啊

这个肯定不是IOException啊

作者: 75100313    时间: 2014-3-17 20:01
:dizzy: 线程异常 怎么还出来个I/O 异常
作者: 1014917278    时间: 2014-3-17 20:06
我也搞不懂,于是就运行了一下。果然是编译错误。

QQ图片20140317200546.jpg (106.5 KB, 下载次数: 33)

QQ图片20140317200546.jpg

作者: 李猛    时间: 2014-3-17 20:19
sleep()方法是静态方法属于Thread类,貌似需要Thread类直接调用,不然编译会出错吧,选A
作者: 赵军军    时间: 2014-3-18 18:45
果断就是编译出错!
作者: 方青木    时间: 2014-3-18 19:46
选A
因为public static void sleep(long millis)
                  throws InterruptedException
抛出的时 InterruptedException 异常,而你catch中捕捉的是IOException
所以会编译出错
作者: 戒爱    时间: 2014-3-18 20:24
李猛 发表于 2014-3-17 20:19
sleep()方法是静态方法属于Thread类,貌似需要Thread类直接调用,不然编译会出错吧,选A ...

MyThread 继承了 Thread 也就继承了Thread的方法,包括静态方法
作者: 李猛    时间: 2014-3-18 22:32
戒爱 发表于 2014-3-18 20:24
MyThread 继承了 Thread 也就继承了Thread的方法,包括静态方法

嗯,静态方法可以继承,但不能复写
作者: 依旧    时间: 2014-3-18 22:44
戒爱 发表于 2014-3-18 20:24
MyThread 继承了 Thread 也就继承了Thread的方法,包括静态方法

这题会选择A?线程不是睡眠200毫秒后,才会打印下面那句话吗?
作者: 戒爱    时间: 2014-3-19 00:04
依旧 发表于 2014-3-18 22:44
这题会选择A?线程不是睡眠200毫秒后,才会打印下面那句话吗?

编译不通过,异常处理不匹配
作者: 王竞    时间: 2014-3-19 00:28
Sleep方法抛出的是InterruptedException异常啊,怎么成IOException了呢???
所以选A,






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2