| 一、JAVA中final 与 static 总结 | ||
| final | static | |
| 修饰类 | 该类不可被继承 | 只能修饰内部类,该类不需要new,是静态加载(嵌套顶层类) |
| 修饰接口 | × | × |
| 修饰构造函数 | × | × |
| 修饰语句块 | × | 虚拟机按声明顺序初始化static成员字段和static语句块 |
| 修饰字段属性 | 表示属性初始化后不能修改(实例常量) | 是类变量,所有实例共享该变量值(类变量) |
| 在定义时或构造函数中赋值(每个实例拥有一份拷贝) | ||
| 修饰方法 | 该方法不能被覆盖(只可继承) | 是类方法,所有实例共享该方法(类方法) |
| 修饰函数参数 | 参数值不能被函数修改 | × |
| 修饰函数局部变量 | 局部变量初始化后不能修改(局部常量) | × |
| 用途 | 1).为了防止方法被覆盖或改写; | 1).定义全局变量或常量; |
| 2).提高运行效率,JAVA对final方法调用采用内嵌机制; | 2).定义类方法; | |
| 二、JAVA类加载顺序 | ||
| JAVA类加载顺序: | 1).按代码顺序递归加载静态成员/代码块,先父类再本类; | |
| 2).按代码顺序递归加载非静态成员/代码块,先父类再本类; | ||
| 3).按代码顺序递归调用构造函数,先父类再本类; | ||
| JAVA类加时机: | 1).调用静态成员时,加载静态成员所在的类及父类; | |
| 2).第一次new对象时加载(第二次new不再加载) | ||
| 3).加载子类会先加载父类.有static和final修饰的成员不会被加载;当成常量使用; | ||
JAVA基础--final、static区别以及类加载顺序
最新推荐文章于 2025-07-13 09:30:59 发布
本文详细解析了Java中final和static关键字的区别与应用场景,包括它们如何用于类、接口、构造函数、字段属性、方法等,并介绍了Java类的加载顺序与加载时机。
880

被折叠的 条评论
为什么被折叠?



