在Java中,使用static关键字描述的方法是静态方法。与静态方法相比,调用实例方法需要消耗更多的系统资源,因为实例方法需要维护类似虚拟函数导向表的结构,从而方便地实现对多态的支持。
一般来说,静态方法和实例方法的区别主要体现在以下两个方面。
在外部调用静态方法时,可以使用“类名、方法名”或“对象名、方法名”。例如,只有以下方法。也就是说,静态方法不需要创建对象。
静态方法只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法没有限制。
如果没有必要访问对象的外部,则将该方法定义为静态方法。静态方法将被更快地调用,因为它不需要一个虚拟函数导向表来告诉你如何区分该方法的性质,它不会改变对象的状态。