Final关键字对JVM类加载器的影响是怎样的
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章将为大家详细讲解有关Final关键字对JVM类加载器的影响是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。当一个类中有声明为static
千家信息网最后更新 2025年11月07日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安全错误
数据库的锁怎样保障安全
怎样定义数据库的结构
中化互联网科技公司
dm数据库不能创建用户
外网直接访问服务器
苏州橙星网络技术有限
盂县租房软件开发
冗余服务器配置
湖南服务器电源价位
华为手机出现无服务器的原因
现代软件开发技术指导
sas数据库无法分配逻辑库
网络技术基本应用的总结
腾讯云服务器的密码
浙江服务器阵列卡配置
网络安全防护用品资质
服务器ad域用户管理
科技互联网视频
主流的服务器类型
长沙云服务器
db2怎么插数据库
学完网络安全能干什么
全国网络安全知识教育
腐蚀链接服务器让更新客户端
在数据库表中添加新属性
盂县租房软件开发
网络安全技术保障主要有哪些
dns服务器和路由器有什么关系
软件开发学习什么语言
美国远程虚拟服务器道
富士通服务器阵列卡驱动