1,static可以减少内存空间的使用
2,static 是一个修饰符,可以修饰成员(成员变量,成员函数),
3,当成员被static修饰后,就多了一种调用方式(不仅可以通过变量调用,也可以通过类名)
4,
右边:堆
左边:栈
中间:方法区,共享区,数据区(static成员,方法)
5,static特点
(1)static随类的加载而加载,随着类的消失而消失(static的生命周期最长)
(2)优先于对象的存在(静态是在先存在的,变量是后存在的)
(3)被所有对象共享
(4)可以直接被类名所调用
6,不建议定义过多的static对象,static对象声明周期特别长,对内存的消耗特别大,
7,实例变量,类变量的区别
(1)类变量随着类的加载保存在方法区中
实例变量随着对象的创建保存在堆内存中
(2) 类变量生命周期最长
实例变量随着对象的消失而消失
8,静态使用注意事项
(1)静态方法只能访问静态成员(静态方法加载时非静态的变量还未加载)
(2)静态方法不可以使用this,super关键字(静态方法优先于对象存在)
(3)main是静态的
9.静态有利有弊
利:
(1)对对象的共享数据进行单独空间存储,节省内存。
(2)可以直接被类调用
弊端:
(1)生命周期过长
(2)访问出现局限性
静态虽好,但是只能访问静态