在JVM内存模型中,每个线程都有对应的JVM Stack(虚拟机栈),栈中存放了方法在运行过程中的栈帧(方法),如图所示:
在main函数运行的过程中,调用了m方法, 此时这个线程的虚拟机栈中就有两个栈帧,分别是main()和m()
如果m() 为递归方法,就会无限在虚拟机栈中创建栈帧,最后导致StackOverflowError 异常,如图:
在JVM内存模型中,每个线程都有对应的JVM Stack(虚拟机栈),栈中存放了方法在运行过程中的栈帧(方法),如图所示:
在main函数运行的过程中,调用了m方法, 此时这个线程的虚拟机栈中就有两个栈帧,分别是main()和m()
如果m() 为递归方法,就会无限在虚拟机栈中创建栈帧,最后导致StackOverflowError 异常,如图: