我知道out是System类中的一个字段,它引用PrintStream的一些对象,因为print(System.out.getClass());
返回类java.io.PrintStream。
我还假设在System类中声明out应该是public static PrintStream out;
我的查询是System Class中'out'字段的实际值
它不能像是
public static PrintStream out = new PrintStream(System.out);
好奇
答案 0 :(得分:3)
检查System
类的源代码时,可以看到它是通过本机方法调用设置的:
private static native void setOut0(PrintStream out);
答案 1 :(得分:1)
out的声明是这样的(取自System src)
public final static PrintStream out = null;
并在此方法中初始化
private static void initializeSystemClass() {
...
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
...
由JVM调用
答案 2 :(得分:0)
out
是System
类中的静态成员,是PrintStream
的实例。
来自System class
public static final PrintStream out;