首先感到遗憾的是,这是一个非常基本的问题,我宣传我仍然是一个代码猴.我在接受采访时被要求阐明System.out.println(); 我解释了以下方式
//this class belongs to java.lang package
class System{
  public static PrintStream out;
}
//this class belongs to java.io package
class PrintStream{
 public void println..
}
我已经解释过System.out是有效的,因为这是我们在java中访问静态变量的方式,而out是PrintStream的一个对象,因此我们可以访问它的方法.
System.out.pritnln(); 
他让我模拟一个类似的程序,我跟踪它并没有用,因为System.out返回null
我的问题是在java中实例化的对象在哪里?如果我没错,它是一个预定义的对象吗?应该是什么细致的解释.
从技术上讲,我们应该叫什么?是PrintStream类型的变量还是应该将其称为PrintStream类型的对象?
我只是想知道out变量 inSystem.out.println()是否在类的静态块中初始化System。该out字段被声明为最终静态变量,它等于 null ( public final static PrintStream out = null;) 。由于 out 指向 null,我认为它是指向PrintStream某个地方的对象。但除了一个名为registerNatives(). 它是否在本机方法中被指向?为什么要这样做(任何性能优势)?此外,out变量的文档System说:
“标准”输出流。此流已打开并准备好接受输出数据。通常,此流对应于主机环境或用户指定的显示输出或另一个输出目的地。”
谢谢。