Java 带返回的方法?我应该什么时候用?

Java 带返回的方法?我应该什么时候用?,java,return,global,Java,Return,Global,我是java编程的初学者,我有一个简单的问题: 什么时候应该使用返回值?我理解它的意思,以及我能用它做些什么。但我想知道我是否不应该总是使用全局变量 你们能告诉我什么时候我应该选择哪个选项吗?答案是应该尽量避免使用全局值。原因是全局变量一直持续到该程序的整个生命周期。GC(垃圾收集器)在程序完成之前不会收集它们(可能有一些例外)。但与此相反,局部变量一旦超出范围,就有资格被收集。因此GC可以有效地收集它们,从而获得良好的内存使用率 所以, 通常,除非有充分的理由,否则尽量避免使用“全局”变量(例

我是java编程的初学者,我有一个简单的问题:

什么时候应该使用返回值?我理解它的意思,以及我能用它做些什么。但我想知道我是否不应该总是使用全局变量


你们能告诉我什么时候我应该选择哪个选项吗?

答案是应该尽量避免使用全局值。原因是全局变量一直持续到该程序的整个生命周期。GC(垃圾收集器)在程序完成之前不会收集它们(可能有一些例外)。但与此相反,局部变量一旦超出范围,就有资格被收集。因此GC可以有效地收集它们,从而获得良好的内存使用率

所以, 通常,除非有充分的理由,否则尽量避免使用“全局”变量(例如,草图中的多个方法需要变量的内容)。这将有助于减少在代码中无意中更改它们的内容的机会。所以你的第二个选择是要避免的

为什么不使用全局变量的一些关键点:

  • 它违反了数据封装原则

  • 生命周期是整个程序的生命周期

  • 如果不小心实现,代码就会乱七八糟

    例如,如果您的程序有两个副本在同一个VM中运行,那么它们会共享静态变量的值,并相互弄乱状态

  • 静态变量表示实例之间的状态,这可能更难进行单元测试。这主要是因为将对静态变量的更改隔离到单个测试中更加困难


  • 如果要从方法中返回某些内容,则需要返回。易于理解的因为只有当变量是全局变量时才应该使用全局变量:)就像我说的。我知道他们在做什么;)但我也可以使用全局变量。为什么我不能这样做?全局变量的使用不是一个好的实践。尽量避免。返回值和局部变量总是更好。好吧,但为什么。。。“尽量避免”不是我避免的好理由;)这就是我一直在寻找的答案:D谢谢!我想说避免全局状态的主要原因是它不能很好地与多线程访问配合使用(特别是当这些不同的线程彼此无关,但恰好使用相同的方法时。@MarkrotVeel我也正要提到多线程,但后来我意识到这个问题是由一个用户提出的,他说“我是JAVA初学者”。所以我保持简单。:)另一个问题是可读性:如何对类中的数百个变量进行排序?如果执行int age=this.getAge(),则很容易知道所有操作以及变量应包含哪些值。