静态成员优先于对象在内存中出现;
静态成员属于类,非静态成员属于对象。
非静态成员只能被对象调用;静态成员可以被类名调用,也能被对象调用,推荐使用类名调用。(非静态方法只能用对象去调,静态方法可以对象调用。用同一个类中可以省略不写类名直接调用,不同类就需要类名.调用了)
静态调用:
不能在静态的方法中引用非静态的变量。(非静态变量,跟随对象在堆内存;静态成员变量跟随类,在方法区;静态要早于非静态)静态方法中不能使用this和super。
程序运行class类先进入方法区;static静态修饰的会先进入方法区中的静态区,并用类名标记,防止重复(所以静态的会跟着类走,即静态成员多了一种调用方式,类名.调用;推荐使用类名调用);然后new对象进入方法栈,set方法为成员变量赋值进入堆内存。
原文:https://www.cnblogs.com/shixinlong/p/13771176.html