Java中的静态static关键字
作用:
可以修饰成员变量和成员方法
static关键字的特点:
随着类的加载而加载
优先于对象存在
被类的所有对象共享(这也是我们判断是否使用静态关键字的条件)
可以通过类名调用
static关键字注意事项:
在静态方法中是没有this关键字的
静态方法只能访问静态的成员变量和静态的成员方法
静态方法 | 可访问区域 |
---|---|
成员变量 | 只能访问静态变量 |
成员方法 | 只能访问静态成员方法 |
非静态方法 | 可访问区域 |
---|---|
成员变量 | 可以是静态,也可以是非静态 |
成员方法 | 可以是静态的成员方法,也可以是非静态的成员方法 |
静态变量和成员变量的区别
所属不同
静态变量 | 属于类,所以也成为类变量 |
---|---|
成员变量 | 属于对象,所以也称为实例变量(对象变量) |
内存中位置不同
静态变量 | 存储于方法区的静态区 |
---|---|
成员变量 | 存储于堆内存 |
内存出现时间不同
静态变量 | 随着类的加载而加载,随着类的消失而消失 |
---|---|
成员变量 | 随着对象的创建而存在,随着对象的消失而消失 |
调用不同
静态变量 | 可以通过类名调用,也可以通过对象调用 |
---|---|
成员变量 | 只能通过对象名调用 |