jvm栈内存溢出的有哪些缘由
递归调用层级过深:如果程序中存在过量的递归调用,每次调用都会在栈中分配一段空间,如果递归层级过深,会致使栈内存溢出。
无穷循环:如果程序中存在一个无穷循环,每次循环都会在栈中分配一段空间,如果循环次数太多,会致使栈内存溢出。
大量的局部变量:如果方法中定义了大量的局部变量,每一个变量都会在栈中分配一段空间,如果变量过量,会致使栈内存溢出。
大量的线程:每一个线程都会有自己的栈空间,如果程序中创建了大量的线程,每一个线程的栈空间都会占用一定的内存,如果线程过量,会致使栈内存溢出。
没法回收的对象:如果程序中存在大量没法被回收的对象,这些对象会一直占用栈空间,致使栈内存溢出。
TOP