【发布时间】:2015-10-22 23:46:24
【问题描述】:
当我浏览System.class 时,我发现了一些对我来说似乎很奇怪的东西。当您查看System.in, System.out, System.err 的声明时,这些声明被标记为final static,但也使用null 进行了初始化
public final static InputStream in = null;
public final static PrintStream out = null;
public final static PrintStream err = null;
既然final 只能初始化一次,那么这些是如何管理的呢?
当我们使用System.out.print("..."); 时,很明显out 不是null 而是final static 怎么不是null?
那么谁能解释一下已经声明为 final 的 out 是如何初始化的?
【问题讨论】:
标签: java reflection stream