JAVA基础--final、static区别以及类加载顺序

 

一、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修饰的成员不会被加载;当成常量使用;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值