黑马程序员技术交流社区

标题: 用递归时内存溢出 [打印本页]

作者: youngster    时间: 2013-5-9 20:42
标题: 用递归时内存溢出
本帖最后由 Sword 于 2013-5-12 19:04 编辑

视频里讲递归次数如果过多会出现内存溢出,
递归重复创建的方法时存在栈内存中吗?栈内存的大小是取决于什么。
栈内存和堆内存中都可以存储什么数据。
作者: Jacky_Chen1990    时间: 2013-5-9 21:59
这个问题有点复杂。
你可以看下我自己整理的一个知识点。
http://www.jackyonline.org/archives/44

里面有关于栈和堆的区别。另外在递归中,如果递归的次数过大,不建议用递归,而是采取别的手段解决问题。
作者: Super_Class    时间: 2013-5-9 22:55
内存的划分:
                                |--寄存器
                                |--本地方法区
                                |--方法区
                                |--栈内存
                                        存储的都是局部变量
                                |--堆内存
                                        存储的是对象(数组也是Object对象)       
                                        |——堆里边的变量在创建的时候都会默认初始化
                                                boolean初始化为false
                                                int类型初始化为0
                                        |——堆内存中的对象使用过,        就会变成垃圾。
                                        JVM的垃圾回收机制会不定时启动,回收堆内存的垃圾
                                        |——数组角标越界,编译不会出错,运行出错。
                                                当引用没有任何实体指向时,会发生空指针异常。
作者: Jacky_Chen1990    时间: 2013-5-9 23:16
Super_Class 发表于 2013-5-9 22:55
内存的划分:
                                |--寄存器
                                |--本地方法区

这个回答得好。支持下。
作者: 殇_心。    时间: 2013-5-11 22:45
如果问题已解决,请及时修改分类,否则继续提问,谢谢合作!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2