为什么Math类的方法是静态的?

时间:2009-02-23 00:56:52

标签: java

为什么Math类的方法是静态的?

8 个答案:

答案 0 :(得分:26)

因为它们不需要任何内部状态,但Java中没有独立的函数 - 每个函数都必须是类的成员。因此,它们是静止的。

答案 1 :(得分:6)

当你的方法实际上不涉及状态或类(例如,数学函数,数组上的实用程序等)时,该类只用于将它们“分组”到一个连贯的位置。因此,您将它们列为静态(因为它们不触及状态),因为您实际上从未实际实例化该类。

答案 2 :(得分:5)

与其他人所说的一样......静态方法的召唤速度更快有两个原因:

  1. 它们不是多态的 - 所以它是一个特殊的JVM指令来运行它们
  2. 他们不需要传递“this”作为第一个参数 - 不传递参数意味着堆栈中的项目更少,这意味着将项目花在堆栈上的时间更少

答案 3 :(得分:2)

很大程度上因为这些是实用程序方法,其中许多方法可以应用于基元的计算。该类的目的很大程度上是为了提供一个标准的函数库,其中许多函数不需要直接应用于对象。

答案 4 :(得分:2)

它们是静态的,因为这些方法不依赖于Math类的instance variables

答案 5 :(得分:0)

静态功能是免费的“副作用”。当您期望计算单个结果时,无需跟踪状态变量。

答案 6 :(得分:-1)

它们需要是静态的,因为数字是基元而不是正确的对象,因此它们不能是数字类型的实例方法。

现在Java也有拳击数字的类,但是为每个数学运算创建一个对象效率太低。

在其他语言中,例如Smalltalk,数字是对象,所有算术运算都是实例方法。

答案 7 :(得分:-7)

可以调用它们,就像它们是数学代码库一样。