2

我知道 out 是 System 类中的一个字段,它引用 PrintStream 的某些对象作为print(System.out.getClass());返回类 java.io.PrintStream。

我也认为 System 类中的 out 声明应该类似于public static PrintStream out;

我在这里的查询实际上是系统类中“out”字段的值。
它不能像
public static PrintStream out = new PrintStream(System.out);

只是好奇

4

3 回答 3

3

查看类的源代码时System,可以看到它是通过本地方法调用设置的:

 private static native void setOut0(PrintStream out);
于 2013-09-04T11:04:04.157 回答
1

out的声明是这样的(取自System src)

public final static PrintStream out = null;

并在此方法中初始化

private static void initializeSystemClass() {
    ...
    setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));

...

由 JVM 调用

于 2013-09-04T11:16:25.517 回答
0

out是类中的静态成员,System并且是PrintStream. 从系统

public static final PrintStream out;
于 2013-09-04T11:06:33.370 回答