cxp108
发贴: 363
积分: 12
|
于 2006-06-29 09:00
楼上2位说的都不是很正确。
这个错误既不是死循环,更不是数组越界。
死循环是程序的大敌,它在大部分时候都不会抛出任何异常,如果有的话也是OutofMemoryError, OutofMemoryError表示内存耗尽。如果程序运行在Swing GUI上,造成的不利影响会更加严重。 它会使程序陷于“死机”状态,计算机水平较低的用户会认为你的程序造成他系统的死机,因此会抵触 你的程序
StackOverflow指的是堆栈溢出,当程序调用到一个函数时,JVM会在自己的堆栈中加入这个函数的 指令,当这个函数return后,JVM会将这个函数从堆栈中弹出。我们递归调用(也就是函数自己调用自己) 的时候,如果没有一定的return条件,函数的指令会不断的添加到JVM堆栈中,直至超过JVM允许的范围 为止,这时JVM就会抛出StackOverflowError。StackOverflow会导致程序立刻崩溃,但未必会耗尽 内存。因此,相对而言StackOverflow造成的危害要小一些。
cxp108 edited on 2006-07-13 09:32
|