Static:静态,不属于某个对象的,依赖于类
静态变量在静态方法中使用,在对象创建之前已经存在,随着类的加载已经跟随着内存的分配。
(1)随着类的加载而加载
(2)优先于对象的存在
(3)随着类的死亡而死亡
使用类名调用
注意:
1.静态方法只能调用静态成员,不能调用非静态成员。
2.非静态方法可以调用静态成员,也可以调用非静态成员。
静态与非静态的区别:
(1)
非静态成员变量又称为实例变量。
静态成员变量又称为类变量。
(2)
非静态成员变量,随着对象的创建而存在,随着对象的消失而消失。
静态成员变量,随着类的加载而存在,随着类的消失而消失。
(3)
非静态变量存在于对象堆内存中。
静态变量存在于方法区中。
(4)
非静态变量只能被对象所调用。
静态变量可以被类名调用,也可以被对象调用。
静态代码块
static
{
语句块
}
java中内存分配
java的内存划分 |
1.寄存器区:CPU涉及的区域 |
2.本地方法区:是系统相关的代码存储区域 |
3.栈内存区:存储的是局部变量,变量运算区域一结束,就释放 |
4.堆内存区:存储数组和对象,存储的都是实体(new 新建的) |
5.方法区 : 存储函数(共享数据)的地方 |
|