编译时能够确定的量和不能够确定的量对java类初始化的区别
来源:互联网 发布:java开发工作不想做了 编辑:程序博客网 时间:2024/04/27 20:08
一、实例
例1
package yy;class FinalA{public static final int a = 6/2;//该值在编译期间能够确定//定义一个静态代码块,用于测试该类是否被初始化static{System.out.println("inintalized FinalA");}}public class Test1 {public static void main(String[] args) {System.out.println(FinalA.a);}}
运行结果:
例2
package yy;import java.util.Random;class FinalB{public static final int a = new Random().nextInt(100);//该值在编译期间不能够确定//定义一个静态代码块,用于测试该类是否被初始化static{System.out.println("inintalized FinalB");}}public class Test2 {public static void main(String[] args) {System.out.println(FinalB.a);}}
运行结果:
三、分析
由程序结果可知,实例1中的FinalA并未初始化,FinalB进行了初始化。原因在于,当在main方法中调用FinalA或FinalB的静态变量时,FinalA中的变量a在编译时是已知的,而FinalB中的变量在编译时是未知的。所以,要使用变量a,Test2必须先初始化FinalB
四、总结
对于在编译时能够确定的静态变量,在使用时可以不对类初始化;
对于在编译时不能确定的静态变量,在使用时需要先对类进行初始化。
0 0
- 编译时能够确定的量和不能够确定的量对java类初始化的区别
- 确定网站的浏览量、访问量
- 如何正确确定网站的浏览量、访问量
- 开关量和模拟量的区别
- sizeof 编译时确定的
- 使用量账本和累积量的区别
- 浅一谈百度索引量和收录量的区别
- 浅一谈百度索引量和收录量的区别
- 百度索引量和收录量的区别
- 类中常量数据成员的初始化
- 算法导论第十四章顺序统计量树确定一个元素的秩
- 确定n个元素的任何排序中逆序对数量
- 站在大二时的遗憾,和那些能够或不能够挽回的青春
- Java量与变量的区别
- 电荷量和电量的区别
- 如何使用反射确定一个属性是否实现了IList接口,如何确定元素量为空的集合的元素类型。
- 如何确定抽样统计的最小样本量(附:随机抽样统计的抽样误差Excel计算表格)
- 如何确定抽样统计的最小样本量(附:随机抽样统计的抽样误差Excel计算表格)
- 关于c#文件操作Streamwriter,streamreader的使用
- Fragment重影以及调用getActivity为null解决
- Windows下查看进程及结束进程命令
- ANSI SQL 定义
- Android访问网络,使用HttpURLConnection还是HttpClient?
- 编译时能够确定的量和不能够确定的量对java类初始化的区别
- 【第5周 项目5-后缀表达式】
- 第五周项目4--数制转换
- Android studio导入Vitamio类库报ANDROID_BUILD_SDK_VERSION' for project ':vitamio' 错误
- 财付通(二)
- 【子菜单】SubMenu
- 第五六周【项目2 - 建立链栈算法库】
- CentOS7命令变化
- 第五周项目二--建立栈链算法库