static:是一个修饰符,用于修饰成员(成员变量,成员函数)。
当成员被静态修饰后,就多了一个调用方式,除了可以被对象调用外,还可以直接被类名调用,写法:类名.静态成员
static特点:
1.随着类的加载而加载,(在类被加载之前,static修饰的静态成员变量已经存入内存)
2.优先于对象存在,【明确一点:静态是现存,对象是后存在的】(不易定义过多的静态变量,因为被static修饰的变量生命周期很长,会占用内存)
3.被所有对象所共享,
4.可以直接被类名调用。
实例变量和类变量的区别,即成员变量和静态变量的区别:
1.存放位置:
类变量随着类的加载而存在于方法区中,
实例变量随着对象的建立而存在于堆内存中
2.生命周期:
类变量生命周期最长,随着累的消失而消失,
实例变量生命周期随着对象的消失而消失。
静态使用注意事项:
1,静态方法只能访问静态成员,非静态方法既可以访问静态成员也可以访问非静态成员。
2,静态方法中不可以定义this,super关键字,因为静态优先于对象存在,所以静态方法中不可以出现this