出于好奇,我正在查看docjar.com上的一些 Java API 类的源代码。我看到了 java.lang.System 类,看到 PrintStream “out”(即 System.out)有以下代码:
public final static PrintStream out = null;
并在评论中说:
The "standard" output stream. This stream is already
open and ready to accept output data.
我的问题是,我知道最终变量无法修改,那么为什么声明时为空?为什么调用“out”的方法时 Java 不抛出 NullPointerException?System.in 也是如此。
感谢您的任何澄清。