Java面试题:关于设置线程名称的选择题
【考题题干】根据下列代码选出正确答案。
public class ThreadTest extends Thread {
        int time;
        public ThreadTest (String name,int t) {
                //填写正确的选项
        }
        public void run() {
                //相关代码省略
        }
        public static void main(String[] agrs) {
                ThreadTest test = new ThreadTest (“线程001”,500);
        }
}
请选择能够正确为test线程设置名称的选项:
A.this(name);
B.this(name,t);
C.Thread.currentThread().setName(name);
D.super(name);
E.super(name,t);
【试题分析】在此题中,ThreadTest类继承了Thread类,所以在子类中就可以使用super这个关键字来调用父类中特定的构造方法。因为在JDK的API文档中记载Thread类具有public Thread(String name)这个构造方法,其作用就是分配新的分配新的Thread对象并设置新线程的名字为name。所以选项D是正确的。
选项C中的Thread.currentThread().setName(name);指的是为当前正在运行的线程设置名字,不是为指定的线程设置名字。选项A和B中的this是在构造方法重载的时候用到,而本题只有一个构造方法。所以用this是错误的。在Thread类的构造方法中没有public Thread(String name,int n)这个方法,所以不能使用super关键字故选项E也是错误的。
【参考答案】D
 

更多java面试题,java电子书,java教学视频请参考"爱学网izixue"