没有合适的资源?快使用搜索试试~ 我知道了~
《JAVA面试题解惑系列合集》0
需积分: 10 19 下载量 130 浏览量
2013-05-31
14:05:19
上传
评论
收藏 774KB PDF 举报
温馨提示
试读
111页
《JAVA面试题解惑系列合集》,面试前必须温习的试题,助你成功面试。 基础常用的常考的java知识点。 如String创建了几个对象这样的。
资源推荐
资源详情
资源评论
目 录
1. JAVA面试题解惑系列
1.1 JAVA面试题解惑系列(一)——类的初始化顺序 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 JAVA面试题解惑系列(二)——到底创建了几个String对象? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 JAVA面试题解惑系列(三)——变量(属性)的覆盖 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .16
1.4 JAVA面试题解惑系列(四)——final、finally和finalize的区别 . . . . . . . . . . . . . . . . . . . . . . . . . . . .22
1.5 JAVA面试题解惑系列(五)——传了值还是传了引用? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .31
1.6 JAVA面试题解惑系列(六)——字符串(String)杂谈 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .36
1.7 JAVA面试题解惑系列(七)——日期和时间的处理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .46
1.8 JAVA面试题解惑系列(八)——聊聊基本类型(内置类型) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .63
1.9 JAVA面试题解惑系列(九)——继承、多态、重载和重写 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .80
1.10 JAVA面试题解惑系列(十)——话说多线程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
1.11 JAVA面试题解惑系列(十一)——这些运算符你是否还记得? . . . . . . . . . . . . . . . . . . . . . . . . . .103
http://zangweiren.javaeye.com
第 2 / 111 页
1.1 JAVA面试题解惑系列(一)——类的初始化顺序
发表时间: 2008-06-26 关键字: java 面试题 初始化
作者:臧圩人(zangweiren)
网址:http://zangweiren.javaeye.com
>>>转载请注明出处!<<<
大家在去参加面试的时候,经常会遇到这样的考题:给你两个类的代码,它们之间是继承的关系,每个类里只
有构造器方法和一些变量,构造器里可能还有一段代码对变量值进行了某种运算,另外还有一些将变量值输出
到控制台的代码,然后让我们判断输出的结果。这实际上是在考查我们对于继承情况下类的初始化顺序的了
解。
我们大家都知道,对于静态变量、静态初始化块、变量、初始化块、构造器,它们的初始化顺序依次是(静态
变量、静态初始化块)>(变量、初始化块)>构造器。我们也可以通过下面的测试代码来验证这一点:
public class InitialOrderTest {
// 静态变量
public static String staticField = "静态变量";
// 变量
public String field = "变量";
// 静态初始化块
static {
System.out.println(staticField);
System.out.println("静态初始化块");
}
// 初始化块
{
System.out.println(field);
System.out.println("初始化块");
}
// 构造器
public InitialOrderTest() {
http://zangweiren.javaeye.com
1.1 JAVA面试题解惑系列(一)——类的初始化顺序
第 3 / 111 页
System.out.println("构造器");
}
public static void main(String[] args) {
new InitialOrderTest();
}
}
运行以上代码,我们会得到如下的输出结果:
1. 静态变量
2. 静态初始化块
3. 变量
4. 初始化块
5. 构造器
这与上文中说的完全符合。那么对于继承情况下又会怎样呢?我们仍然以一段测试代码来获取最终结果:
class Parent {
// 静态变量
public static String p_StaticField = "父类--静态变量";
// 变量
public String p_Field = "父类--变量";
// 静态初始化块
static {
System.out.println(p_StaticField);
System.out.println("父类--静态初始化块");
}
// 初始化块
{
System.out.println(p_Field);
System.out.println("父类--初始化块");
}
// 构造器
http://zangweiren.javaeye.com
1.1 JAVA面试题解惑系列(一)——类的初始化顺序
第 4 / 111 页
public Parent() {
System.out.println("父类--构造器");
}
}
public class SubClass extends Parent {
// 静态变量
public static String s_StaticField = "子类--静态变量";
// 变量
public String s_Field = "子类--变量";
// 静态初始化块
static {
System.out.println(s_StaticField);
System.out.println("子类--静态初始化块");
}
// 初始化块
{
System.out.println(s_Field);
System.out.println("子类--初始化块");
}
// 构造器
public SubClass() {
System.out.println("子类--构造器");
}
// 程序入口
public static void main(String[] args) {
new SubClass();
}
}
运行一下上面的代码,结果马上呈现在我们的眼前:
1. 父类--静态变量
2. 父类--静态初始化块
3. 子类--静态变量
http://zangweiren.javaeye.com
1.1 JAVA面试题解惑系列(一)——类的初始化顺序
第 5 / 111 页
剩余110页未读,继续阅读
资源评论
贼船叔叔
- 粉丝: 242
- 资源: 7
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功