A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class Ceshi {
        public static void main(String[] args) {
        Car car = new Car();
        }
}
class Car {
        Car c = new Car();
}

为什么会内存溢出,请大神详细分析过程!!!

10 个回复

倒序浏览
呃...没有人知道吗???
大神在哪里,在哪里?
回复 使用道具 举报
不停的new当然内存溢出了  
回复 使用道具 举报
你这个问题就在讲递归拷贝文件的时候有,异曲同工啊旁友
回复 使用道具 举报
菊花爆满山 发表于 2016-4-2 13:44
不停的new当然内存溢出了

为什么不停的new啊,只空口说没有分析等于没说啊?我也知道可能是不停的new,但是为啥不停的new啊?

点评

new对象就要在堆内存中开辟空间来存储对象的属性 c,这个属性的初始化直又new了一个对象,然后又开始堆内存空间,以此类推,不停的开辟堆内存空间,造成堆内存溢出   发表于 2016-4-3 08:58
回复 使用道具 举报
这个是个递归调用哦,如果没有停止调教会一直递归调用,你的内存自然就满了
回复 使用道具 举报
无限循环,你说呢
回复 使用道具 举报
你这个是不停的递归,
回复 使用道具 举报
楼主的问题我也有,明天准备问问风清扬,明天老人家出山给我们讲一天的课,我就将这个问题已经提交上去了
回复 使用道具 举报
biu 中级黑马 2016-4-2 23:20:51
10#
递归就是自己调用自己,你这无限调用又不弹栈,当然内存溢出了
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马