static 的存在是因为,当多个对象的某个成员都相同时, 堆内存 中会比较占空间;使用static,将此被“共享”的成员拿出来,单独存放在方法区。
static特点:
1)随类的加载而加载(随类的消失而消失,说明其生命周期最长);此特点会限制其使用(见下方注意)
2)优先于对象存在
3)被所有对象共享
4)可直接被类名调用
注意:
1) 静态方法 只能访问静态成员
非静态方法即可访问静态,也可访问静态;// ∵静态方法在类创建时就出现,而非静态成员随对象创建而出现。类先于对象存在,∴静态方法无法访问“当时”还未存在的非静态成员。
2)静态方法中不可以定义this、super等关键字。 //同理,this指代对象,静态方法出现时,对象还未出现。