一、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区别以及类加载顺序
原创eleven_huali 博主文章分类:JAVA ©著作权
©著作权归作者所有:来自51CTO博客作者eleven_huali的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Java list顺序打乱
Java list顺序打乱
List System i++ -
有关nat和路由的先后顺序
nat和routing forwarding
nat route forward -
MVC 先后顺序
页面加载顺序 先加载
加载 页面加载 js