Static(静态)关键字:
1.概念:静态static是一个修饰符,用于修饰成员(成员变量和成员方法),被static修饰的内容被对象所共享。
2.用法:当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,还可以直接被类名调用:类名.静态成员。
3.使用原因:当多个对象中存在共同的数据时,引用static修饰,能够节省内存空间。
4.存储位置:
被static修饰的成员存储在方法区中。(方法区也称之为数据区或共享区,存放类中的共享方法及共享数据);
而特有的方法及变量随着对象存储在堆内存中。
5.static的特点:
① 随着类的加载而加载;
② 优先于对象存在,随着类的消失而消失;
③ 对象所共享;
④ 可以直接被类名所调用,生命周期最长。
6.成员变量也称为实例变量;静态的成员变量也称为类变量。
实例变量与类变量的区别:
① 存放位置。类变量随着类的加载而存在于方法区中;而实例变量随着对象的建立而存在于堆内存中。
② 生命周期。类变量生命周期随着类的消失而消失;实例变量随着对象的消失而消失。
7.静态使用的注意事项:
① 静态方法只能访问静态成员;非静态方法可以访问静态成员和非静态成员。
② 静态方法中不可以定义this、super关键字。因为静态优先于对象存在。
③ 主函数是静态的。
8.静态有利有弊:
利:对对象的共享数据进行单独空间的存储,节省空间,没有必要每个对象中都存储一份。可以直接被类名调用。
弊:生命周期过长。访问出现局限性(静态虽好,只能访问静态)。