使用System.out.println()的目的是什么

时间:2018-11-29 10:40:43

标签: java class println system.out printstream

我正在检查System.out.println()的内部实现。尽管我了解了它是如何工作的,但无法弄清楚:

  1. 为什么他们决定首先使用System类。
  2. 他们本可以直接使用PrintStream软件包中提供的io类。

  3. className.referenceVariable.Methodname语法的意义是什么,因为我们通常不使用它。有什么具体原因吗?

任何人都可以详细说明这些观点或任何相关信息。

2 个答案:

答案 0 :(得分:1)

根据我的理解,System类名用于指示与运行JVM的系统的任何交互。在系统控制台上执行读取或写入操作,或在系统中读取环境变量等。

您始终可以直接直接使用PrintStream,并且没有任何危害。但是随后您必须每次在类中创建一个PrintStream对象,并调用内部的方法使用它。相反,它已经在System类中静态创建,以便我们随时使用。

对于您的第三个查询,Eran已经在评论中回答了。

答案 1 :(得分:1)

System类指出:

  

System类提供的功能包括标准输入,标准输出和错误输出流;访问外部定义的属性和环境变量;一种加载文件和库的方法;以及用于快速复制数组一部分的实用方法。

由于您正在检查System类的源代码,因此您可能已经注意到out对象是final并被设置为null。是setOut()方法,它为out变量赋值(这是本机代码)。

我知道,JVM在将值设置为null后如何将其设置为final变量,对吗?成为JVM有其自身的优势!

在将值分配给out对象之前,还会触发称为checkIO的单独方法,该方法检查IO权限。

因此System类被设计为标准输入,输出和错误流的集合。它还指示JVM初始化对象,例如out对象。

关于System.out.println()的语法,Eran已经对其进行了解释。