Final关键字对JVM类加载器的影响是怎样的
发表于:2025-01-17 作者:千家信息网编辑
千家信息网最后更新 2025年01月17日,这篇文章将为大家详细讲解有关Final关键字对JVM类加载器的影响是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。当一个类中有声明为static
千家信息网最后更新 2025年01月17日Final关键字对JVM类加载器的影响是怎样的
这篇文章将为大家详细讲解有关Final关键字对JVM类加载器的影响是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
当一个类中有声明为static final的变量,这样的变量对类的加载器有一定的影响,首先看看下面的例子。
package com.bird.classLoad; class FinalTest{ public static final int a = 6/3; static{ System.out.println("FinalTest static block"); } } public class Test3 { public static void main(String[] args) { System.out.println(FinalTest.a); } }
因为a是static final变量,且它等于6/3,在编译的时候就可以知道它的值,所以直接访问a的值不会引起FinalTest类的初始化。作为表现,也就是static静态代码快不会被加载。
运行结果为
2
在看一个例子
package com.bird.classLoad; import java.util.Random; class FinalTest4{ public static final int a = new Random().nextInt(100); static{ System.out.println("FinalTest4 static block"); } } public class Test4 { public static void main(String[] args) { System.out.println(FinalTest4.a); } }
这个static final变量a因为i在编译的时候无法知道它的确切的值,所以只有等到运行的时候才能知道,所以自己访问FinalTest4.a会引起FinalTest4类的初始化。也就是static静态代码快的加载。
运行结果为
FinalTest4 static block 82
下面的例子是讲,当子类被主动访问的时候,会引起其直接父类的初始化
package com.bird.classLoad; class Parent{ static int a = 3; static{ System.out.println("Parent static block"); } } class Child extends Parent{ static int b = 4; static{ System.out.println("Chind static block"); } } public class Test5 { public static void main(String[] args) { System.out.println(Child.b); } }
因为直接访问Child,b,会先初始化Parent类,然后初始化Child类。
运行结果为
Parent static block Chind static block 4
如果通过子类直接访问父类的变量,只会初始化父类而不会初始化子类
package com.bird.classLoad; class Parent{ static int a = 3; static{ System.out.println("Parent static block"); } } class Child extends Parent{ static{ System.out.println("Chind static block"); } } public class Test5 { public static void main(String[] args) { System.out.println(Child.a); } }
直接访问Parent类的a变量,则只会直接初始化parent类,不会初始化Child类
运行结果如下
Parent static block 3
关于Final关键字对JVM类加载器的影响是怎样的就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
变量
运行
时候
结果
影响
例子
子类
关键
关键字
也就是
代码
内容
文章
更多
知识
篇文章
静态
面的
编译
不错
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
微博服务器异常时内容照常浏览
kc端服务器
e570 软件开发
软件开发工程师薪资结
吉林数据库空投箱出厂价格
pg数据库cmd指令
网络安全例分析
黄山行业专业软件开发
航迹数据库
安徽统一软件开发检测中心
nrl3d数据库官网
青州阿里云服务器
怎么写界面连接数据库
网站域名服务器哪个好
安卓查数据库表
上海常见软件开发费用
服务器可以删掉dns吗
社区疫情防控数据库
数据库离雅安有多远
郑州大学网络安全研究院招生
车载网络技术视频讲解
哪里服务器租用
pg数据库cmd指令
防诈骗网络安全小品
安全狗会影响服务器速度吗
银行的软件开发岗笔试
美国全球网络安全事件
服务器插上显卡
网络延迟与服务器人数有关吗
监控系统用哪些服务器