静态方法,系统会为静态方法分配一个固定的内存空间。

而普通方法,会随着对象的调用而加载,当使用完毕,会自动释放掉空间。

普通方法的好处是,动态规划了内存空间的使用,节省内存资源。静态方法,方便,运行快,而如果全部方法都用静态方法,那么每个方法都要有一个固定的空间,这样的话太占内存。

因而也就解释了,为什么静态方法可以直接被类名调用,而不需要用对象调用, 因为他有固定空间,随类的加载而加载。

public class ABC{

         public static void calm{
    }      
         public void activity{
    }
         public static void main(String[] args){
       
              ABC.calm();
             
             ABC abc = new ABC();
             abc.activity();
    }
}

如此可类似解:

为什么main方法是静态的(static)

    main方法是通往外部的接口(不同于interface),提供给外部调用者使用。

  1. 正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。

    2.如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。

;;