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

6 java

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

mip*_*adi 27

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


Uri*_*Uri 6

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


Tof*_*eer 5

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

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