当前位置: 代码迷 >> J2SE >> 关于JAVA源码中System.out的有关问题
  详细解决方案

关于JAVA源码中System.out的有关问题

热度:76   发布时间:2016-04-24 17:32:36.0
关于JAVA源码中System.out的问题
我看了jdk6中System.java的源码,这么定义我们经常用的out:
public   final   static   PrintStream   out   =   nullPrintStream();
然后nullPrintStream()方法如下
private   static   PrintStream   nullPrintStream()   throws   NullPointerException   {
if   (currentTimeMillis()   >   0)   {
        return   null;
}
throw   new   NullPointerException();
        }

整个方法跑完不是回复null就是抛Exception,那我们平时还怎么用的System.out.println(..)之类的方法?

------解决方案--------------------
不要100%相信你看到的
------解决方案--------------------
其实是一样的。。。你不要相信。

------解决方案--------------------
看源码总得先看注释吧,你有没有看注释?
/**
* The following two methods exist because in, out, and err must be
* initialized to null. The compiler, however, cannot be permitted to
* inline access to them, since they are later set to more sensible values
* by initializeSystemClass().
*/
  相关解决方案