日期:2014-05-20  浏览次数:20599 次

关于Java中System类的问题
java中输出常用

System.out.println();

其中out是System类中的一个static的属性(成员变量),而且是PrintStream类的一个对象。但我看源文件的时候,它是声明了一个out这样的对象,但实例化的时候好像只给了一个NULL?这样为什么还可以调用它的方法println()呢?println()不是static的呀。
它是怎样的一个过程呢?

请高手赐教,谢谢!

------解决方案--------------------
private static void initializeSystemClass() {
....
setOut0(new PrintStream(new BufferedOutputStream(fdOut, 128), true));
....
}
------解决方案--------------------
楼主再仔细分析以下源码吧,代码里面并不是只给了out一个null值啊!