1、static(静态)关键字
用法:
是一个修饰符,用于修饰成员(成员变量、成员方法)。
当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,还可以直接被类名调用——类名.静态成员
特有内容随对象存储。
2、static特点
随着类的加载而加载——随着类的消失而消失。
优先于对象的存在——静态先存在,对象后存在。
被所有对象共享。
可以被类名直接调用。
实例变量与类变量区别:
存放位置:
- 类变量随着类的加载存在于方法区中。
- 实例变量随着对象的建立存在于堆内存中。
生命周期:
- 类变量生命周期最长,随着类的消失而消失。
- 实例变量随着对象的消失而消失。
3、static的使用事项
静态方法只能访问静态成员(方法与变量)
非静态方法既可以访问静态,也可以访问非静态。静态方法中不可以定义this、super等关键字。
因为静态优先于对象存在,所以静态方法中不可以出现this。主函数是静态的。
public static void main (String[] args)
/*
主函数:是一个特殊的函数,作为程序的入口,可被jvm调用
主函数的定义:
public:代表该函数访问权限是最大的
ststic:代表主函数随着类的加载就存在了
void:主函数没有具体的返回值
main:不是关键字,是特殊单词,可被jvm识别
(String[] args)函数的参数,参数类型是一个数组,字符串类型数组
*/
4、static的利与弊
利:对对象的共享数据进行单独空间的存储,节省空间,可以直接被类名调用。
弊:生命周期过长,访问出现局限性(只能访问静态)
5、什么时候使用静态
从两方面下手:因为静态修饰的内容有成员变量和函数
定义静态变量时(类变量)时:当对象中出现共享数据时,该数据被静态修饰,对象中的特有数据要定成非静态存在放在堆内存中。
定义静态函数:当功能内部没有访问到非静态数据(对象特有数据)那么,该功能可以定义为静态的。
6、静态的应用
下一篇
7、静态代码块
格式:
static
{
静态代码中的执行语句;
}
特点:随着类的加载只运行一次,并优先于主函数。
作用:用于给类进行初始化。