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

解决方案 »

  1.   

    回收的前提是方法中分配的内存成为垃圾内存了,比如说
    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对象由于还有方法外面的引用,所以不会被回收。
    方法中运行的线程如果没有结束,那么类库中支持线程运行的类肯定会有指向该线程的引用,所以线程所在内存不会被回收