静态方法,系统会为静态方法分配一个固定的内存空间。
而普通方法,会随着对象的调用而加载,当使用完毕,会自动释放掉空间。
普通方法的好处是,动态规划了内存空间的使用,节省内存资源。静态方法,方便,运行快,而如果全部方法都用静态方法,那么每个方法都要有一个固定的空间,这样的话太占内存。
因而也就解释了,为什么静态方法可以直接被类名调用,而不需要用对象调用, 因为他有固定空间,随类的加载而加载。
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),提供给外部调用者使用。
正因为main方法是静态的,JVM调用这个方法就不需要创建任何包含这个main方法的实例。
如果main方法不声明为静态的,JVM就必须创建main类的实例,因为构造器可以被重载,JVM就没法确定调用哪个main方法。