Java中System.out.println的含义是什么?

这是System命名空间中的java.lang.Object类中的静态java.lang.System函数吗?

namespace System {
  class out {
    static println ...
  }

我该如何解释这个名字? 在JRE中的哪个位置定义了此功能? 在java.lang.System/java.lang.Object中?

prosseek asked 2019-10-25T04:25:09Z
19个解决方案
85 votes

实际上,outerr类中的静态成员(不是.NET中的静态成员),是in的实例。OutErr类中的常规(重载)方法。

请参阅[http://download.oracle.com/javase/6/docs/api/java/lang/System.html#out。]

实际上,如果out/err/in是类,则由于命名约定(忽略语法),它们将以大写字母(Out/Err/In)命名。

kennytm answered 2019-10-25T04:25:37Z
48 votes

PrintStream是一类,具有一个公共静态字段java.io。所以它更像

class System 
{
    public static PrintStream out;
}

class PrintStream
{
    public void println ...
}

这有点过分简化,因为PrintStream类实际上位于java.io包中,但是足以显示事物之间的关系。

cHao answered 2019-10-25T04:26:10Z
26 votes

检查以下链接:

[http://download.oracle.com/javase/1.5.0/docs/api/java/lang/System.html]

您将清楚地看到:

printlnjava.io.PrintStream包中的类。

printlnjava.io.PrintStream类的静态成员,并且是java.io.PrintStream的实例。

printlnjava.io.PrintStream的一种方法。此方法被重载以将消息打印到输出目的地,该目的地通常是控制台或文件。

YoK answered 2019-10-25T04:27:13Z
26 votes

System.out.println()

高层次的理解

为了理解这一点,我们需要回顾一些Java基础知识:

  • java中的点(。)运算符:在java中。 (点运算符)仅用于调用方法或变量。所以我们可以说是方法还是变量。
  • Java中的方法:我们知道方法的名称后总是带有括号“()”,因此在Java中不能是方法。 因此,它是一个变量,而println()是一种方法。
  • Java中的类名:在Java中,类名最好以大写字母开头,因此System是一个类。

现在有了Java的基本知识,我们知道:

  • 系统是一类
  • 出是变量
  • println()是一种方法

让我们获得更多详细信息:

输出变量:静态还是实例?

  • 使用类名调用它,因此我们知道其System类的静态变量。

  • 但它调用方法println()方法,因此“ out”是引用类型PrintStream的对象。

System类属于java.lang包

class System {
  public static final PrintStream out;
  //...
}

Prinstream类属于java.io包

class PrintStream{
public void println();
//...
}
VdeX answered 2019-10-25T04:29:29Z
7 votes

SystemPrintStream是属于System类别的两个重载方法。

要访问它们,我们需要一个此类的实例。

System类上创建了类型为System的名为System的静态属性。

因此,为了访问上述方法,我们使用以下语句:

System.out.println("foo");
System.out.print("foo");
Omprakash.K answered 2019-10-25T04:30:21Z
4 votes
System.out.println("Hello World");
  1. println():这是包含对象的标准类的名称封装了系统的标准I / O设备。

它包含在软件包println()中。由于默认情况下,每个Java程序中都导入了out软件包,因此println()软件包是Java API中唯一不需要导入声明的软件包。

  1. println():该对象out代表输出流(即Command窗口),并且是该类的静态数据成员println()

因此请在此处注意println()println() -Class和out-静态对象,即为什么只用类名引用它,而无需创建任何对象)。

  1. println()println()out对象的方法将文本字符串作为参数并将其显示为标准在显示器屏幕上输出。

注意
println()-类
println()-静态对象
println()-方法
请记住,函数(在Java函数中称为方法)始终具有格式function()

Isabella Engineer answered 2019-10-25T04:31:51Z
2 votes

println()PrintStream封装中的一类

println()java.io封装中的PrintStream类的PrintStream对象

println()PrintStream类中的方法

being_j answered 2019-10-25T04:32:35Z
2 votes

Systemjava.lang包的类,outPrintStream类的对象,也是System类的static数据成员,print()和2584366887908866087是258436688790788660088类的实例方法。它在控制台上提供软输出。

Dushyant answered 2019-10-25T04:33:08Z
1 votes

理解这个问题非常简单,但是要回答这个问题,我们需要更深入地研究Java本机代码。

  • System是静态类,无法实例化
  • println()System中定义的参考变量
  • println()是用于在标准输出上打印的方法。

对此总是欢迎一个简短而优美的解释,因为我们可以从这句话的本身中学到很多东西!

Shyam answered 2019-10-25T04:34:06Z
1 votes

因为out是用System类名本身而不是类(对象)的实例调用的,所以out必须是属于类System的静态变量。out必须是类的实例,因为它正在调用方法 println()

// the System class belongs to java.lang package
class System {
    public static final PrintStream out;
}
class PrintStream {
    public void println();
}
VMAtm answered 2019-10-25T04:34:41Z
1 votes

Systemjava.lang package中的类。outPrintStream对象。 不错的解释@ [http://lazy-geeks.blogspot.in/2015/01/what-is-systemoutprintln.html]

pavan answered 2019-10-25T04:35:19Z
1 votes
System.out.println();

System是课程

SystemSystem类中的变量,它是Object,变量类型是System

这是Object类中的System变量:

public final static PrintStream out = null;

您可以在此处看到System的实现。

SystemObject类中的重载方法。

System包括三种重载打印方法,它们是:

  1. System
  2. System
  3. System

您可以在此处看到System的实现。

您无法实例化System类,它是Object的子类,而Object是每个类(包括您定义的类)的父级(超类)。

这是oracle文档说的:

System

System类包含几个有用的类字段和方法。 它   无法实例化。

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

以来:       JDK1.0

如果您不知道实例化的含义,请阅读此问题。 这是C#问题,但概念相同。

另外,实例和对象之间有什么区别?

如果您不知道过载的含义,请阅读此问题。

Blasanka answered 2019-10-25T04:37:39Z
0 votes

SystemPrintln()封装中的类。

Println()PrintStream类中的静态数据成员,并且是PrintStream类的参考变量。

Println()PrintStream类的常规(重载)方法。

mohd zeeshan answered 2019-10-25T04:38:32Z
0 votes

从有关System.out的javadoc中,文档内容如下:

public final class System
extends Object

The System class contains several useful class fields and methods. It cannot be instantiated.
Among the facilities provided by the System class are standard input, standard output, and error output streams; access to externally defined properties and environment variables; a means of loading files and libraries; and a utility method for quickly copying a portion of an array.

Since:
JDK1.0

关于System.out

public static final PrintStream out

The "standard" output stream class Prinstream  belongs to java.io package. This stream is already open and ready to accept output data. 
When the JVM is initialized, the method initializeSystemClass() is called that does exactly what it’s name says – it initializes the System class and sets the out variable. The initializeSystemClass() method actually calls another method to set the out variable – this method is called setOut().
Typically this stream corresponds to display output or another output destination specified by the host environment or user.

关于println();

class PrintStream{
public void println();
}

对于简单的独立Java应用程序,写一行输出数据的典型方法是:

System.out.println(data);
Nagaraja G Devadiga answered 2019-10-25T04:39:30Z
0 votes

系统是java类。

out是PrintStream的实例,也是静态成员。

println是PrintStream的方法。

Ravi Rupapara answered 2019-10-25T04:40:20Z
0 votes

Java代码中的System.out.println(“ ...”)被转换为JVM。 查看JVM使我更好地了解了幕后的情况。

从《编程》一书中的Java虚拟机开始。这段代码是从[https://github.com/ymasory/programming-for-the-jvm/blob/master/examples/HelloWorld.j。]复制而来的。

这是JVM源代码。

.class public HelloWorld
.super java/lang/Object

.method public static main([Ljava/lang/String;)V
.limit stack 2
.limit locals 1
  getstatic java/lang/System/out Ljava/io/PrintStream;
  ldc "Hello, world"
  invokevirtual java/io/PrintStream/println
    (Ljava/lang/String;)V
  return

.end method
.end class

由于“ JVM不允许字节级访问内存”,类型为Ljava/io/PrintSteramout对象; 使用JVM命令getstatic存储在堆栈中。然后,将该参数压入堆栈,然后从名为out的实例调用out的类java/io/PrintStream的方法println。该方法的参数为(Ljava/lang/String;),输出类型为void(V)。

prosseek answered 2019-10-25T04:41:20Z
0 votes

static:是static封装的预定义类。

static:是printstream类的static成员,它与控制台连接。

printstream:是printstream类的方法,而不是static

user3819423 answered 2019-10-25T04:42:13Z
0 votes
System.out.println

Systemout封装中的一类。

outSystem类的static数据成员,并引用PrintStream类的变量。

kuldeep rawat answered 2019-10-25T04:43:00Z
-1 votes

println()-本质上为static的类。 PrintStream。属于PrintStream程序包

println()-static类型PrintStream的参考变量

println()-非PrintStream类中的static方法。PrintStream属于java.io程序包。

要更好地理解它,您可以访问:System.out.println()如何在Java中工作

Mantu answered 2019-10-25T04:44:02Z
translate from https://stackoverflow.com:/questions/3406703/whats-the-meaning-of-system-out-println-in-java