测试静态初始化模块执行顺序的程序: 运行结果如下: Root的静态初始化块Mid的静态初始化块Leaf的静态初始化块Root的普通初始化块Root的无参数的构造器Mid的普通初始化块Mid的无参数的构造器Mid的带参数构造器,其参数值:Java初始化顺序演示Leaf的普通初始化块执行Leaf的构造器 ...
分类:
其他好文 时间:
2019-10-16 13:41:05
阅读次数:
60
继承类同理: 静态>普通 基类>继承类 先打印基类的静态方法以及静态初始化块(根据出现的先后顺序),再打印子类的静态方法及静态初始化块(先后顺序)。 再打印基类普通的方法以及普通实例化块(先后),最后打印基类的构造函数;再打印子类的普通方法及普通实例化块(先后),最后打印子类的构造函数。 ...
分类:
其他好文 时间:
2019-10-15 12:53:22
阅读次数:
70
测试类加载的全过程publicclassHave{static{System.out.println("加载Have");//先加载Have再调用main方法}publicstaticvoidmain(String[]args)throwsException{System.out.println("main方法");//先调main方法Aa=newA();//先初始化父类,再初始化子类System
分类:
编程语言 时间:
2019-09-17 22:57:05
阅读次数:
177
案例: 第一次用到A和B类 加载父类,为父类的静态变量分配内存 加载子类,为子类的静态变量分配内存 为父类静态变量复制和静态初始化块 为子类类静态变量复制和静态初始化块 创建对象: 新建父类对象,为父类实例变量分配内存 新建子类对象,为父类实例变量分配内存 父类实例变量的赋值运算 父类构造方法 子类 ...
分类:
其他好文 时间:
2019-08-27 23:30:24
阅读次数:
176
1、java类加载顺序: (1) 父类静态代码块(包括静态初始化块,静态属性,但不包括静态方法) (2) 子类静态代码块(包括静态初始化块,静态属性,但不包括静态方法 ) (3) 父类非静态代码块( 包括非静态初始化块,非静态属性 ) (4) 父类构造函数 (5) 子类非静态代码块 ( 包括非静态初 ...
分类:
编程语言 时间:
2019-07-17 00:04:22
阅读次数:
96
初始化块 实际上,初始化块是一个假象,使用javac命令编译java类后,初始化块会消失,初始化代码被还原到每个构造器中代码的最前面 在实例化的过程中:前面的初始化块先执行,后面的后执行 初始化块的修饰符只能是 static 普通初始化块负责对对象执行初始化,静态初始化块负责对类执行初始化 初始化块 ...
分类:
编程语言 时间:
2019-06-06 14:10:09
阅读次数:
102
一、内部类 一个类里面能放6样东西 属性 方法 构造器 初始化块 静态初始化块 内部类 1)成员内部类(类中) 1、静态成员内部类、非静态成员内部类 2、定义在类的内部,方法的外部 3、类的成员 A:四个权限修饰符 B:static/final/abstract 2)局部内部类 局部内部类定义在方法 ...
分类:
其他好文 时间:
2019-06-03 21:33:59
阅读次数:
116
初始化块是和成员变量、成员函数一个级别的。一般用于类的初始化,也可执行其他java代码,作用和构造函数相同。 创建对象时,初始化块在构造函数之前执行。 初始化块分为普通初始化块、静态初始化块。 普通初始化块:{ .........}创建对象时,在构造函数之前执行,没次创建对象时都会执行。 静态初始化 ...
分类:
其他好文 时间:
2019-05-12 15:37:14
阅读次数:
97
今天看了一下《spring技术内幕》,看了下spring IOC容器的加载过程,但是里面的代码很杂,就自己用源码的测试用例debug了一下看了下过程 测试用例 加载过程 首先会调用父类AbstractApplicationContext的静态初始化块 大概就是说为了避免一些奇怪的问题会首先发布一个C ...
分类:
移动开发 时间:
2019-04-03 18:04:15
阅读次数:
163
1. 静态初始化块 > 初始化块 > 构造器 2. 父类 > 子类 综合下来顺序就是: 父类静态初始化块 子类静态初始化块 父类初始化块 父类构造器 子类初始化块 子类构造器 需要注意静态初始化块是在类第一次加载的时候就会进行初始化, 其余是在实例化时初始化。 ...
分类:
编程语言 时间:
2018-12-03 19:49:30
阅读次数:
190