1

有一个很常见的代码:System.out.println,这是再常见不过的输出语句,但是学了一段时间突然想起去看了下源码,下面是源码:

public final static PrintStream out = null;

out是在System类下定义的,还没实例化,out仅仅是一个null的变量,甚至都不能称之为静态对象,但是却能调用PrintStream类下的println()方法,这就不太理解了?请问为什么?

查看全部 5 个回答

推荐答案

1

亲,首先,当你启动你的测试类,也就是实例化你的测试类时,你所调用的所有静态类都会先实例化了,所以其实当你执行到System.out.println语句时,System这个类里面的方法和属性都是已经被初始化好了的!