以下java程序输出什么?
public class HelloSoGou {
public static synchronized void main(String[] asf) {
Thread t = new Thread(){
public void run(){
Sogou();
}
};
t.run();
System.out.print("Hello");
}
static synchronized void Sogou(){
System.out.print("Sogou");
}
}
A) HelloSogou B)SogouHello
C)Hello D)结果不确定
考点:该面试题主要考察求职者对run()与start()的区别。 出现频率:★★★★★
【面试题分析】调用t.run(),并没有启动一个新的线程,只是普通的方法调用,程序中依然只有主线程这一个线程,所以执行顺序是先执行run(),再执行 System. out . print(" Hello"),结果就是 SogouHello。如果将t.run()改成t. start(),结果就是 Hello Sogou。
参考答案是:B