为什么递归方法在Java中通常是静态的?

这些天我正在审查递归,发现很多Java递归方法样本都是静态的。 有人能解释一下原因吗?

我的猜测是他们想要节省内存,因为逻辑上“父”递归方法只要其子递归方法正在运行并且还没有返回任何内容就会保持愚蠢。

另外请检查以下猜测是否正确:

静态递归方法在同一个线程上运行,而非静态方法可以在不同的线程上运行,这是正确的还是没有任何意义?

因为递归方法/算法通常仅由其参数控制,而不是由实例变量控制。

任何不依赖于实例变量的方法都可以(并且可能应该)变为static