一、题目
创建一个类,它包含一个int域和一个char域,它们都没有被初始化,将它们的值打印出来,以验证Java执行类默认初始化。
二、思路
int域和char域都是基本类型,在定义的时候就会被默认初始化掉,不用单独new个对象出来。
三、解题
输入
public class E1_DefaultInitialization {
int intTest;
char charTest;
String stringTest;
String stringTestInitial = new String();
public E1_DefaultInitialization(){
System.out.printf("intTest:" + intTest + "\ncharTest:["+ charTest + "]" + "\nstringTest:" + stringTest + "\nstringTestInitial:" + stringTestInitial);
}
public static void main(String[] args) {
new E1_DefaultInitialization();
}
}
输出结果
intTest:0
charTest:[]
stringTest:null
stringTestInitial:
可以发现,int初始化值为0;char初始化值为空串;stringTest未被初始化结果是null;只有当new出String时,stringTestInitial才有对应值为空。
结构设置:题目、思路、解题、纠错&对比、结果