为什么Math类的方法是静态的?
因为它们不需要任何内部状态,但Java中没有独立的函数 - 每个函数都必须是类的成员.因此,它们是静态的.
如果您的方法实际上不涉及状态或类(例如,数学函数,数组上的实用程序等),则该类仅用于将它们"分组"到一个连贯的位置.因此,您将它们列为静态(因为它们不触及状态),因为您实际上从未实例化该类.
与其他人所说的一样......静态方法的调用速度更快,原因有两个:
它们不是多态的 - 所以它是一个特殊的JVM指令来运行它们
他们不需要传递"this"作为第一个参数 - 不传递参数意味着堆栈中的项目更少,这意味着将项目放在堆栈上的时间更少