System.out.println()
我正在搜索在控制台上打印参数值的java 源代码。我检查了PrintStream
和FilterOutputStream
类OutputStream
,它们都没有完整的方法实现,也没有任何对本机代码的引用。
值如何System.out.println
打印在控制台上,哪个本地方法正在执行实际工作?
System.out.println()
我正在搜索在控制台上打印参数值的java 源代码。我检查了PrintStream
和FilterOutputStream
类OutputStream
,它们都没有完整的方法实现,也没有任何对本机代码的引用。
值如何System.out.println
打印在控制台上,哪个本地方法正在执行实际工作?
您必须深入了解装饰器模式包装器。在底部你会发现FileOutputStream
,特别是这个方法:
private native void writeBytes(byte b[], int off, int len) throws IOException;
使用此代码来玩它:
public static void main(String[] args) throws Exception {
nav(nav(System.out));
}
static Object nav(Object o) throws Exception {
final Field[] fs = o.getClass().getSuperclass().getDeclaredFields();
for (Field f : fs) {
f.setAccessible(true);
final Object r = f.get(o);
System.out.println(r);
return r;
}
return null;
}
public static final PrintStream out
“标准”输出流。此流已经打开并准备好接受输出数据。通常,此流对应于主机环境或用户指定的显示输出或另一个输出目的地。对于简单的独立 Java 应用程序,编写一行输出数据的典型方法是:
System.out.println(data)
在哪里:
void println(String x)
打印一个字符串,然后终止该行。