黑马程序员技术交流社区

标题: 一个面试时问到的问题!!搞不定~~求解!! [打印本页]

作者: 聂益飞    时间: 2013-3-28 21:28
标题: 一个面试时问到的问题!!搞不定~~求解!!
  1. class  ThreadDemo
  2. {
  3.         public static void main(String[] args)
  4.         {
  5.                 //面试
  6.                 new Thread(new Runnable(){  //匿名
  7.                         public void run(){
  8.                                 System.out.println("runnable run");       
  9.                         }
  10.                 })//应该在这里加start()方法才对,在下面加start()方法什么意思?
  11.                 {
  12.                         public void run(){
  13.                                 System.out.println("subthread run");
  14.                         }
  15.                 }.start();  //结果:subthread run
  16.         }
  17. }
复制代码

作者: 刘胜寒    时间: 2013-3-28 21:38
匿名内部类啊....加start(),是d调用run()函数
作者: 刘胜寒    时间: 2013-3-28 21:45
匿名内部类,然后复写了run();
作者: 殇_心。    时间: 2013-3-28 21:48
2个地方加都对。但意思不一样。
new Thread(new Runnable(){  //匿名
public void run(){
System.out.println("runnable run");        
}
}).start();  会输出 runnable run。这是你也理解。
而问题是:
{
  public void run(){
System.out.println("subthread run");
}.start();
这是对run方法的复写。  然后就输出   sunbthread run
作者: _王涛    时间: 2013-3-28 22:01
用匿名Runnable类构造Thead类,但Thread类自己也重写了run方法,最终start是启动线程,运行了线程本身的run方法




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