类变量(静态变量):
static变量是对象共享,不管static变量在哪:
(1)static是同一个类所有对象共享
(2)static类变量,在加载的时候就生成了
位置:
JDK7以前放在方法区的静态域中
JDK7以后放在静态域中,静态域存储于定义类型的Class对象中,Class对象如同队中其他对象一样,存在于GC堆中
语法:
访问修饰符 static 数据类型 变量名
访问: 类名.类变量名/对象名.类变量名
什么时候需要类变量:
当需要某个类的所有对象都需要共享一个变量的时候,就可以考虑使用类变量(静态变量)
类变量和实例变量区别:
一个类对象共享,一个是每个对象独享
类变量在类加载时就初始化了,也就是说,即使没有创建独享,只要类加载了,就可以使用类变量了
类变量的生命周期是随类的加载开始,随着类消亡而销毁
什么时候使用类方法:
当方法中不涉及任何和对象相关的成员,则可以将方法设计成静态方法,提高开发效率
类方法不允许使用和对象相关的关键字,比如this和super
类方法只能访问静态变量和静态方法
普通方法可以访问普通/静态的变量/方法
静态方法只能访问静态成员