final static 关键字 初始化

本文深入探讨Java中类的加载、连接与初始化过程,解析finalstatic常量的编译期特性,以及类变量与实例变量的初始化时机。同时,讨论通过子类引用父类静态字段时的类初始化行为。

类的加载

1. java里,类型的加载、连接、初始化过程都是在程序运行期间完成的。这个和那些在编译时需要进行连接工作的语言不太相同。

2. 被final static 修饰的常量,会在编译期把结果放入常量池。所以final static a =123,在准备阶段就会赋值为123. 因为在编译的时候就已经把123的值初始化完了。

3. 通过子类来引用父类中定义的静态字段,只会触发父类的初始化,而不会触发子类的初始化,至于是否要触发子类的加载和验证,在虚拟机规范中也没有明确定义。

 

类变量也叫静态变量,也就是在变量前加了static 的变量;
实例变量也叫对象变量,即没加static 的变量;

准备阶段只会初始化类变量即类静态变量!!!

===================

new 实例

实例变量在类被new 的时候初始化!!

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值