Java程序运行顺序:Java应用程序—虚拟机—操作系统—硬件
Java中栈内存用来存储局部变量和方法调用,堆内存用来存储Java中的对象,成员变量、局部变量、类变量指向的对象都存储在堆内存中。
static关键字:
- 随着类的加载而加载
- 优先于对象存在
- 被类的所有对象共享
如果某个成员变量是被所有对象共享的,那么他就应该定义为静态的
静态只能访问静态
静态变量和成员变量的区别
- 所属不同
静态变量属于类,也被称之为类变量
成员变量属于对象,也被称之为实例变量(对象变量) - 内存中位置不同
静态变量存储于方法区的静态区
成员变量存储于堆内存 - 内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失
成员变量随着对象的创建而存在,随着对象的消失而消失 - 调用不同
静态变量可以通过类名和对象调用
成员变量只能通过对象调用