我知道每个线程都有自己的堆栈,那么这是否意味着每个方法也有自己的线程?
最佳答案
不,每个方法在当前线程的堆栈中都有自己的堆栈框架。
因此,如果您有两个线程,一个调用 method1() 并调用 method2(),另一个调用 methodA(),后者调用 methodB(),后者又调用 methodC(),那么您最终会得到:
Stack 1 Stack2
methodC()
method2() methodB()
method1() methodA()
请注意,也有可能 tail recursion它允许递归调用替换当前堆栈帧,而不是创建新堆栈帧。
关于java - 在递归java方法中,每个方法调用都会产生一个新的堆栈吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6173600/