System类中out字段的值是多少?

时间:2013-09-04 11:02:02

标签: java system.out

我知道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);

好奇

3 个答案:

答案 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)

outSystem类中的静态成员,是PrintStream的实例。 来自System class

public static final PrintStream out;