这是因为在System类里定义了静态变量out
public final static PrintStream out = null;
当我们使用System.out.println();时,便会自动调用该方法。
测试:
public class test{
public static void main(String[] args) {
String s = null;
System.out.println(s);
}
}
运行结果
例题:
class Test{
int i = 2;
String s = null;
void Test(){
i = 3;
s = "days";
}
public static void main(String[] args) {
Test t = new Test();
System.out.println(t.i + t.s);
}
}
答案是:2null
分析:因为这里void Test()是普通方法,所以需要手动调用,只有构造方法是在类加载时调用,所以void Test()方法并未执行。