1. 定义
一种 表示静态属性的 关键字 / 修饰符
2. 作用
共用、共享
能有此作用的原因分析:
- Java中,任何变量 / 代码存储时,都是 在编译时 由系统自动分配内存
- 在静态变量编译后,所分配的内存会一直存在,直到程序退出内存才会释放这个空间
- 类加载时,
JVM
会把静态变量放到 方法区,被本类 & 本类的所有实例所共用
3. 具体使用
Static
静态修饰符可应用于:类、代码块、方法 & 变量- 下面,我将详细分析
3.1 静态类
- 定义
使用Static
关键字 修饰、定义 为 静态的 内部类
即:
- 静态类又名为:静态内部类
- 该类独立存在,形式上与外部类有内外关系,实际上则没有,本质是为了隐藏自身
- 具体使用 & 相关规则
1 | /** |
- 静态内部类 与 内部类的区别
- 特别注意
a. 加载一个类时,其内部类不会同时被加载。
b. 一个类被加载时刻 = 当且仅当其某个静态成员被调用时(静态域、构造器、静态方法等)
3.2 静态代码块
- 定义
类加载器加载类的最后1步(类初始化)时,执行类构造器()
里需执行的一组语句
额外说明
- 类初始化 = 真正开始执行类中定义
Java
程序代码 = 执行类构造器()
()
= 由编译器自动收集类中所有类变量的赋值动作&静态语句块中的语句合并产生的- 与类构造函数(即实例构造器
()
)不同,()
不需显式地调用父类构造器,虚拟机会保证子类的()
执行前,父类的()
已执行完毕
- 具体使用 & 相关规则
1 | /** |
3.3 静态方法
- 定义
使用Static
关键字 修饰、定义为静态的成员方法
也称:类方法
- 具体使用 & 相关规则
1 | /** |
3.4 静态变量
- 定义
使用Static
关键字 修饰、定义为静态的成员变量
也称:类变量
- 具体使用 & 相关规则
1 | /** |
- 静态变量与实例变量的区别
至此,关于Java
中的静态 Static
关键字讲解完毕。
4. 总结
- 本文主要讲解了
Java
中的静态Static
关键字,总结如下: