14. static(静态) 关键字

1.修饰成员变量

  1)定义:数据需要被共享给所有对象使用使用static修饰(全局变量)

  2)注意:

    1.用static中创建的成员变量在内存中只有一份

    2.千万不要为了方便访问数据而使用static修饰成员变量,只有成员变量的数据是真正需要被共享的时候才使用static修饰

    3.当加载类时即已加载,非static变量实例对象时加载,而普通成员变量只有在对象被创建的时候猜存在

    4.静态成员变量从类被加载开始到类被卸载,一直存在;普通成员变量只要在类被实例化也就是创建对象是才开始存在,一直到对象结束,生命也告终

  3)访问方式:

    1.可以使用对象进行访问。

      对象.变量名。

    2.可以使用类名进行访问。

      类名.变量名;

  4) 语法:public static String name;

 

  案例1:

    需求:描述一下学生类。都是中国人....

 

    目前存在的问题: 所有的学生都是中国 的,有n个学生就会有n份中国的 数据存内存中,这样子会浪费内存。

 

    目前方案: 把“中国”这个数据移动 到数据共享区中,共享这个数据给所有的Student对象使用即可。

 

    静态的成员变量只会在数据共享区中维护一份,而非静态成员变量的数据会在每个对象中都维护一份的。。

 

2.static修饰成员函数

  注意:

    凡是用static修饰的成员函数调用时不需要实例化类

    static不能修饰类

原文地址:https://www.cnblogs.com/zjdbk/p/8877638.html