静态初始板块,构造方法和初始板块它们之间的执行优先级
来源:互联网 发布:c语言打开文件目录 编辑:程序博客网 时间:2024/05/16 00:40
论静态初始板块,构造方法和初始板块它们之间的执行优先级:
看下列代码:
public class Test_27_优先级 {//构造方法public Test_27_优先级() { System.out.println("我是构造方法");}//静态初始板块static { System.out.println("我是静态初始板块");}//初始板块{ System.out.println("我是初始板块");}public static void main(String[] args) {Test_27_优先级 test27 = new Test_27_优先级 ();System.out.println("------------");Test_27_优先级 test27_1 = new Test_27_优先级 ();}}结果:
我是静态初始板块我是初始板块我是构造方法------------我是初始板块我是构造方法
从上面代码和结果当中我们可以了解到谁是最优先执行:
程序运行时静态初始代码块最先被执行
然后执行普通初始化板块
最后才执行构造方法
再者:
静态初始板块只能在类加载时执行一次,所以当再次创建对象 test_27_1时并未执行静态初始化块
package test;public class Test_27_优先级 {int num1;int num2;static int num3;//构造方法public Test_27_优先级() {num1=1; System.out.println("我是构造方法,为num1赋值");}//静态初始板块static {num3=3; System.out.println("我是静态初始板块,为num3赋值");}//初始板块{ num2 =2 ; System.out.println("我是初始板块,为num2赋值");}public static void main(String[] args) {Test_27_优先级 test27 = new Test_27_优先级 ();System.out.println("num1="+test27.num1);System.out.println("num2="+test27.num2);System.out.println("num3="+num3);System.out.println("------------");Test_27_优先级 test27_1 = new Test_27_优先级 ();}}
特别注意:
静态初始化块只能给静态变量赋值,不能初始化普通的成员变量。
0 0
- 静态初始板块,构造方法和初始板块它们之间的执行优先级
- 静态块 构造块的初始顺序
- 继承类之间的静态方法和构造方法之间的执行顺序
- spring 配置文件初始执行方法
- 各板块的龙头股票
- 北京年会和关于数据仓库板块的思考
- 今日正式开始逛CSDN的JS和CSS板块
- Discuz论坛主页和板块分区使用不同的模板
- hashmap 中的初始容量和加载因子之间的联系
- java常规变量和静态变量的初始顺序
- 02.11潜龙每周综述:当前应持有的热点板块和应避开的板块分析。
- 传媒板块
- 初始
- 初始
- 初始
- 初始
- 初始
- 初始
- VBA入门--变量的基础内容和知识点
- HashMap解决hash冲突的方法
- Android Xml的解析
- 自旋锁、互斥锁和信号量的区别
- Golang RPC性能测试
- 静态初始板块,构造方法和初始板块它们之间的执行优先级
- 模拟数字式时钟
- Linux(CentOS)下,下载安装Nginx并配置
- js给网页中所有p元素添加onclick事件
- hdu 3549 网络流 模板题
- 1102. Invert a Binary Tree (25)
- Volley源码解析
- nodejs&&git&&cmd&&npm代理及仓库配置
- Java并发编程系列之二:重排序与顺序一致性