黑马程序员技术交流社区
标题:
java基础(深入浅出版) 面试题总结之day08:面向对象--继承面试题2
[打印本页]
作者:
huang_bing_hua
时间:
2016-2-23 18:56
标题:
java基础(深入浅出版) 面试题总结之day08:面向对象--继承面试题2
看代码写结果,结果是?
class Fu {
static {
System.out.println("静态代码块Fu");
}
{
System.out.println("构造代码块Fu");
}
public Fu() {
System.out.println("构造方法Fu");
}
}
class Zi extends Fu {
static {
System.out.println("静态代码块Zi");
}
{
System.out.println("构造代码块Zi");
}
public Zi() {
System.out.println("构造方法Zi");
}
}
class ExtendsTest2 {
public static void main(String[] args) {
Zi z = new Zi();
}
}
考察知识点:
1.静态的内容是随着类的加载而加载,所以静态代码块的内容会优先执行
2.子类初始化之前先会进行父类的初始化,而构造方法的作用就是用来给成员变量初始化的,所以得先访问父类的构造方法
3.执行顺序:静态代码块 优先 构造代码块 优先 构造方法
以上代码执行顺序以及结果:
第一步:类的加载 输出 静态代码块Fu
静态代码块Zi
第二部:构造方法 输出 构造代码块Fu
构造方法Fu
构造代码块Zi
构造方法Zi
作者:
w417678197
时间:
2016-2-23 20:12
赞一个!!!
作者:
woaigm
时间:
2016-2-23 22:09
学到了!
作者:
woaigm
时间:
2016-2-23 22:10
学到了!
作者:
阿昆
时间:
2016-2-23 23:09
好棒啊,不错
作者:
qianxin
时间:
2016-2-23 23:53
刚做自测题的时候碰到的一个点
作者:
lidebin
时间:
2016-2-24 08:19
还没有看到这一块,感觉好难
作者:
oassuperhan
时间:
2016-2-24 15:38
大家都是多长时间看完视频啊?感觉时间不够用呢
作者:
斯麦尔端
时间:
2016-2-24 20:41
A:局部代码块
用于限定变量的生命周期,及早释放,提高内存利用率。
B:构造代码块
给类初始化,每个构造方法执行前,首先执行构造代码块。
C:静态代码块
给类初始化,仅仅只执行一次。
静态代码块,构造代码块,构造方法的顺序问题
静态代码块 > 构造代码块 > 构造方法
作者:
zzh111
时间:
2016-2-24 22:35
类的加载过程是什么?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2