阿里校招之类实例化的顺序
来源:互联网 发布:阿里云异地登录 编辑:程序博客网 时间:2024/05/01 12:25
转自:http://my.oschina.net/u/998081/blog/177882
类A的定义
01
package
com.sequence.test;
02
03
public
class
A {
04
05
// 静态变量
06
static
String name;
07
08
// 静态自由块
09
static
{
10
name =
"a"
;
11
System.out.println(
"static filed of A inited."
);
12
}
13
// 实例变量
14
String type;
15
// 非静态自由块
16
{
17
type =
"a.type"
;
18
System.out.println(
"no-static filed of A inited."
);
19
}
20
String size;
21
// 构造函数
22
public
A(){
23
size =
"a.size"
;
24
System.out.println(
"construct func of A inited."
);
25
}
26
}
01
package
com.sequence.test;
02
03
public
class
B
extends
A{
04
05
// 静态自由块
06
static
{
07
System.out.println(
"static filed of B inited."
);
08
}
09
// 非静态自由块
10
{
11
System.out.println(
"no-static filed of B inited."
);
12
}
13
public
B(){
14
System.out.println(
"constuct func of B inited."
);
15
}
16
}
01
package
com.sequence.test;
02
03
public
class
InitSequenceTest {
04
05
/**
06
* @param args
07
*/
08
public
static
void
main(String[] args) {
09
// TODO Auto-generated method stub
10
new
B();
11
}
12
13
}
输出:
总结如下:1,静态自由块在class加载的时候执行。只会执行一次。
2,非静态自由块在新建类的实例的时候执行。可以多次执行。在新建其或子类的实例时,就会执行。
当存在多个同一种类型的自由块时,执行的顺序是根据他们在代码块中出现的顺序。
3,当子类继承父类,执行的顺序如下:父类的静态变量和静态域->子类的静态变量和静态域->父类的非静态自由块->父类的构造函数->子类的非静态自由块->子类的构造函数
0 0
- 阿里校招之类实例化的顺序
- Java之类实例化的顺序
- 阿里校招笔试
- 阿里校招面试
- C++细节学习之类的实例化
- 我的阿里秋招之路——阿里实习offer+校招offer
- Java 之类的加载顺序
- Java 类初始化顺序 -- 结合阿里2014校招笔试 Java 附加题
- Java 类初始化顺序 -- 结合阿里2014校招笔试 Java 附加题
- 阿里校招笔试题
- 阿里校招面试-20140913
- 小记-阿里校招面试
- 阿里2016校招java
- 看了两个小时阿里校招的大混战
- 阿里2015校招前端方向的一道面试题
- 前端校招面试的一些经验(阿里美团爱奇艺)
- J2SE(七)Java之类的实例化
- C++之类对象创建的先后顺序
- OV2640帧率的计算
- python内置函数
- 告别合服的苦恼
- word2013 论文引用参考文献
- 关于签名后的apk的优化
- 阿里校招之类实例化的顺序
- 免费的文本编辑器 (copied)
- 点跟多边形的碰撞检测
- pat 1070
- PHP中Imagick类的使用
- ARM处理器模式弹跳机制的初始化 笔记版 转载请注明出处---crosskernel@gmail.com
- windows 输出\r\n问题
- 算法概率思维导图
- C# 模拟键盘输入