在一个方法中new一个对象,如果调用该方法,调用完该方法中该方法中分配的内存即方法栈内存会被回收,
我想问的是如果在该方法中new一个Thread类型的对象,那方法调用完毕后,Thread类型的对象所在的内存又是怎样处理的
急急急!!!

解决方案 »

  1.   

    如果没有指向该对象的变量并且线程还未开始运行或运行完毕,则Thread类型的对象所在的内存成为垃圾内存
      

  2.   

    回收的前提是方法中分配的内存成为垃圾内存了,比如说
    public class Test
    {
    public String a;
    public String b;

    public Test()
    {
    createA();
    b = createB();
    }

    public String createB()
    {
    return new String("afd");
    }

    public void createA()
    {
    a = new String("a");
    }
    }
    方法虽然结束了,但创建的String对象由于还有方法外面的引用,所以不会被回收。
    方法中运行的线程如果没有结束,那么类库中支持线程运行的类肯定会有指向该线程的引用,所以线程所在内存不会被回收