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

为什么递归方法在Java中通常是静态的?,java,recursion,static,Java,Recursion,Static,我最近在回顾递归,发现很多Java递归方法示例都是静态的。有人能解释一下原因吗 我的猜测是,他们希望节省内存,因为从逻辑上讲,只要子递归方法正在运行并且还没有返回任何内容,“父”递归方法就保持沉默 另外,请检查以下猜测是否正确: 静态递归方法运行在同一个线程上,而非静态方法可能运行在不同的线程上,这是正确的还是没有任何意义?因为递归方法/算法通常仅由其参数控制,而不是由实例变量控制 任何不依赖实例变量的方法都可以(也可能应该)成为static静态递归方法运行在同一个线程上,而非静态方法可能运行在

我最近在回顾递归,发现很多Java递归方法示例都是静态的。有人能解释一下原因吗

我的猜测是,他们希望节省内存,因为从逻辑上讲,只要子递归方法正在运行并且还没有返回任何内容,“父”递归方法就保持沉默

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


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

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


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

静态递归方法运行在同一个线程上,而非静态方法可能运行在不同的线程上,这是正确的还是没有任何意义?这是绝对错误的。这里有一些概念,我认为在继续之前需要逐一回顾。了解
静态
方法和实例方法之间的区别。理解什么是递归。如果你想知道线程是什么,但这是不相关的。“很多”和“通常”不是一回事。毫无根据的概括。@SotiriosDelimanolis谢谢!!!在我看来,最后的评论完全是错误的。使方法成为静态的决定取决于它在语义上是该类型的方法还是特定实例的方法。仅仅因为当前的实现不依赖于实例并不意味着它永远不会依赖于实例,但稍后它将是一个突破性的API更改。@IngoBürk-很好的观点-但我不同意完全错误的观点。我故意用can这个词。将静态方法移入实例比移出实例更容易,因此我在一开始就尽可能简单。