一个程序中如果    
这样
public chengxu(){   \\构造方法
  start();
}
.....
.....
while(true){
new chengxu()
}
但如果这样while(true){
 start();
}
 
这样运行后就不行,提示我空指针异常,这是为什么,为什么非得把start放入构造方法之中才能运行!

解决方案 »

  1.   

    上面的代码方在哪里运行的?run方法里?
      

  2.   

    把代码都copy进来. 一切从实际出发.
      

  3.   

    首先lz得搞清楚start()方法的功能。
    当调用一个Runnable的对象o的start()方法的时候,该方法将o初始化为一个线程并置它为等待执行状态。
    start()方法不一定要放在构造器中,但是必须得有一个对象。
    lz的第一种写法每次都new了一个新的对象,所以没有问题。但是第二种方法,你要把什么东西初始化为一个线程呢?
    不懂start()方法里面是怎么执行的,具体的操作和运行平台有关。也不知道空指针出在哪里。
      

  4.   

    没有extends 也没有implents   run  方法????
    怎么就有start呢?