灵魂拷问:你真的理解System.out.println()执行原理吗?

 灵魂拷问,这位独秀同学,你会这道题吗?

 请说说,“System.out.println()”原理......

灵魂拷问:你真的理解System.out.println()执行原理吗?


这应该是刚开始学习Java时用到最多一段代码,迄今为止,与它算是老朋友了。既然是老朋友,就应该多去深入了解下其“内心”深处的“真正想法”。

在深入了解之前,先给自己提几个问题:

System是什么?out是什么?println又是什么?三个代码组成为何能实现打印信息的功能?

接下来,我们就带着问题,去熟悉我们这位相处已久的老伙计。

 

先从System开始一步一步探究。

在百度百科上,有对System做了这样的说明:System类代表系统,其中系统级的很多属性和控制方法都放置在该类的内部。

简而意之,该类与系统有关,可获取系统内部的众多属性以及方法,其部分源码如下:

1 public final class System { 2 private static native void registerNatives(); 3 static { 4 registerNatives(); 5 } 6 private System() { 7 } 8 public final static InputStream in = null; 9 public final static PrintStream out = null; 10 public final static PrintStream err = null; 11 private static volatile SecurityManager security = null; 12 public static void setIn(InputStream in) { 13 checkIO(); 14 setIn0(in); 15 } 16 public static void setOut(PrintStream out) { 17 checkIO(); 18 setOut0(out); 19 } 20 ...... 21 }

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpxfyp.html