static 关键字:
是一个修饰符,用于修饰成员(成员变量和成员方法),注意不能修饰局部变量。被修饰的成员变量称为类变量,之所以叫类变量是跟它所作用的生命周期是有关的。而没被static修饰的成员变量又称为实例变量,即其生命周期和实例(对象)相关联。
特点:
1.被static修饰的成员在方法区/共享区,不在堆内存了。
2.静态成员随着类的加载而加载,随着类的消亡而消亡。即最先加载,最后消亡,生命周期和类一样,最长。
3.基于第二个特点可知,优先于对象存在。因为类一加载,静态成员就进方法区了,之后对象开辟空间。
4.可以被所有对象共享(使用或改变)。
5.多了一种调用方式:类名.静态成员。
6.被修饰的变量是全局的。
静态的使用注意事项:
1.静态方法只能访问静态成员(变量和方法)。
非静态方法既可以访问静态又可以访问非静态。
2.静态方法里不可以使用this、super关键字。
还是那句话,静态成员先加载,对象是后加载的。
3.主函数是静态的。
静态的利弊:
利:对多个对象共享的数据进行单独的存储,节省空间,没必要每个对象都存一份。
弊:生命周期过长,占内存。
访问出现局限性,只能调用静态成员。 |