静态:static
用法:是一个修饰符,用来修饰类中的成员函数和成员字段。当成员被静态修饰之后,就多了个调用方式,除了能够被对象调用之外,还能被类名直接调用。
特点:
- 随着类的加载而加载,先于对象存在于内存当中。生命周期很长。
- 可以被所有的对象共享。
- 可以直接被类名调用使用。
实例变量与类变量(静态变量)的区别
- 存储位置:类变量存储在共享区(方法区,也就是静态存储区),实例变量随着对象的建立存在于堆内存中。
- 生命周期:类变量随着类的消失而消失,生命周期最长;实例变量随着对象的消失而消失,生命周期短。
静态变量的使用注意事项:
- 静态成员函数只能调用静态成员(成员函数和成员变量),不能访问非静态成员。因为静态成员先于对象存在,而非静态成员需要创建对象之后才能存在于内存当中。
- 静态方法中不可以出现this,super关键字,原因也同上。
静态的利弊:
- 利处:对对象的共享数据进行单独存储,节约空间。
- 弊端:生命周期过长;访问出现局限性(静态只能访问静态成员)。
使用静态变量的时机:当存在共享数据的时候,使用静态static修饰成员字段
使用静态方法的时机:当该方法没有访问非静态成员的时候,就应该使用。