日期:2014-05-17  浏览次数:20892 次

new对象所占内存空间的问题
//首先new一个对象。
Student s = new Student("0001","张三");
s.Speak();

//然后再重新new。
s = new Student("0002","张四");
s.Speak();

// 当重新new s的时候,它所占的内存空间大小有没有发生变化呢?或者是重新给s开辟一块内存空间呢?
内存 new对象

------解决方案--------------------
原先的释放了,s指向新的地址
------解决方案--------------------
是的,重新开辟了一个内存空间,但是原来的“张三”被释放了。所占的内存空间大小没有发生变化!
------解决方案--------------------
//然后再重新new。
s = new Student("0002","张四");

这句话后,系统重新分配新的内存啦,然后s指向这个新的内存地址,内存大小嘛,你新的对象数据需要好大空间就分好大空间嘛

以前那个就被抛弃啦,他是垃圾了,回收器会收了他滴