代码之家  ›  专栏  ›  技术社区  ›  prosseek

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

  •  57
  • prosseek  · 技术社区  · 14 年前

    这是静电的吗 println 中的函数 out 上课地点 System

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

    我怎么解释这个名字?在JRE中,这个函数是在哪里定义的?在 java.lang.System / java.lang.Object ?

    19 回复  |  直到 11 年前
        1
  •  87
  •   user35443    11 年前

    不,事实上 out System 类(与.NET不同),作为 PrintStream . 以及 println 打印流 班级。

    看到了吗 http://download.oracle.com/javase/6/docs/api/java/lang/System.html#out .

    外面的 / err / in 如果是类,它们将以大写字母命名( Out Err / In )由于 naming convention

        2
  •  48
  •   cHao Hammerite    14 年前

    System 是一个类,它有一个公共静态字段 out . 所以更像是

    class System 
    {
        public static PrintStream out;
    }
    
    class PrintStream
    {
        public void println ...
    }
    

    这有点过于简单化了,因为 PrintStream java.io

        3
  •  27
  •   VedantK    9 年前

    System.out.println()

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

    • 所以我们可以说out不是方法就是变量。
    • 所以它是一个变量,println()是一个方法
    • java中的类名:在java中,类名最好以大写字母开头, 所以系统是一个类 .

    • out是一个变量
    • println()是一个方法

    输出变量

    • 用类名调用,所以我们知道它的静态变量是系统类。

    • 但是它调用的是println()方法,所以out是引用类型PrintStream的对象。

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

    Prinstream类属于java.io包

    class PrintStream{
    public void println();
    //...
    }
    
        4
  •  26
  •   cHao Hammerite    11 年前

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

    System 是一个 java.lang

    out 是一个 静态成员 类,并且是 java.io.PrintStream .

    println 是一个 方法 属于 java.io.PrintStream文件 . 此方法被重载,以便将消息打印到输出目标(通常是控制台或文件)。

        5
  •  7
  •   Gijs    12 年前

    println print 是属于 PrintStream 班级。

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

    静态特性 打电话 out 打印流 是在 System

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

    System.out.println("foo");
    System.out.print("foo");
    
        6
  •  4
  •   MikeT    7 年前
    System.out.println("Hello World");
    
    1. System 它封装了标准

    它包含在 java.lang . 自 默认情况下,每个java程序都会导入包,因此 包裹

    1. out : 对象out表示输出流(即命令 系统

    所以请注意这里 System.out 系统 -类别(&A); -静态对象,即为什么它只是通过类名引用,而我们不需要创建任何对象 ).

    1. println 这个 println() 方法 外面的 输出,即 在监视器屏幕上 .

    注意
    -班级
    外面的 -静态对象
    println() -方法
    记住一个函数(在java中称为method)总是有格式 函数()

        7
  •  2
  •   Blasanka    7 年前

    System java.lang 包裹

    out static PrintStream 上课时间 java.io 包裹

    println() 是中的一种方法

        8
  •  2
  •   Blasanka    7 年前

    System 是一类 java.lang out PrintStream 类和 static 系统 班级, print() println() 打印流 在控制台上提供软输出。

        9
  •  1
  •   Marko cyn    12 年前

    • System
    • out 是中定义的引用变量 系统
    • println() 是用于在标准输出上打印的方法。

    A brief and nice explanation 在这一点上,我们总是很受欢迎的,因为我们可以从这句话本身学到很多!

        10
  •  1
  •   VMAtm    10 年前

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

    // the System class belongs to java.lang package
    class System {
        public static final PrintStream out;
    }
    class PrintStream {
        public void println();
    }
    
        11
  •  1
  •   PiotrWolkowski    10 年前

    System 有一个班级在吗 java.lang package . 以及 out PrintStream 对象。很好的解释@ http://lazy-geeks.blogspot.in/2015/01/what-is-systemoutprintln.html

        12
  •  1
  •   Blasanka    7 年前
    System.out.println();
    

    System 是班级吗

    out 是中的变量 这是一个 static 变量类型为 PrintStream .

    这是你的名字 外面的 变量输入 系统 班级:

    public final static PrintStream out = null;
    

    您可以看到 System here

    println() 是中的重载方法 班级。

    1. print()
    2. println()
    3. printf()

    你可以看到 implementation of PrintStream here .

    不能实例化 系统 Object 对象 是每个类(包括您定义的类)的父类(超类)。

    以下是甲骨文文档的内容:

    public final class System extends Object

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

    系统 类是标准输入, 标准输出和错误输出流;外部访问 定义属性和环境变量;加载文件的一种方法 一个数组。

    自: JDK1.0版

    what is meant by instantiate, read this questioh . 这是个问题,但概念是一样的。

    也, What is the difference between an Instance and an Object?

    如果你不知道 what is meant by overload read this quesiotn .

        13
  •  0
  •   Marko cyn    12 年前

    System 有一个班级在吗 java.lang 包裹。

    out 中的静态数据成员 系统 的类和引用变量 PrintStream

    Println() 是一种正常(重载)的 打印流

        14
  •  0
  •   Nagaraja G Devadiga    10 年前

    来自javadoc关于 System ,医生是这么说的:

    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.
    

    class PrintStream{
    public void println();
    }
    

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

    System.out.println(data);
    
        15
  •  0
  •   Ravi Rupapara    9 年前

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

    打印

        16
  •  0
  •   prosseek    8 年前

    Java代码中的System.out.println(“…”)被翻译成JVM。通过查看JVM,我更好地了解了引擎盖后面的情况。

    从书中 Programming form the Java Virtual Machine 此代码复制自 https://github.com/ymasory/programming-for-the-jvm/blob/master/examples/HelloWorld.j .

    .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不允许字节级的内存访问”,所以 out 类型L中的对象 java/io/PrintSteram getstatic JVM命令。 println java/io/PrintStream 外面的 . 方法的参数是(L java/lang/String

        17
  •  0
  •   TomServo    7 年前

    System : 是预定义的 java.lang

    out : 是一个 static printStream 类及其与控制台的连接。

    Println 是一种 printstream 类和它不是 静止的 .

        18
  •  0
  •   Pang firemonkey    6 年前
    System.out.println
    

    System 是班里的一个班 java.lang 包裹。

    out static 的数据成员 系统 类并引用 PrintStream

        19
  •  -1
  •   Mantu    9 年前

    System -类是什么 final 在自然界。 public final class System{} java.lang

    out - static 类型的引用变量 PrintStream

    println() -非 静止的 中的方法 班级。 属于 java.io 包裹。

    How System.out.println() Works In Java