作为Java初学者,你们可能也会和我一样,看不太懂,甚至感到疑惑,比如System是啥?好的,接下来就让我们来学习这个问题。
我们先来看Java写的helloworld程序。
public class HelloWorld {
public static void main(String[] args) {
System.out.println("hello world");
}
}
在这段Java代码中,System
是一个预定义的类,属于 java.lang
包。System
类包含一些有用的类字段和方法,用于标准输入、标准输出和错误输出流,以及访问外部环境属性和系统属性。
具体来说,System
类提供了以下几个重要的静态成员:
System.out
:标准输出流,通常是控制台。System.err
:标准错误输出流,通常是控制台。System.in
:标准输入流,通常是键盘输入。
在代码中,System.out
被用来输出文本到控制台。
详细解释
-
System
类System
是一个最终类(final class
),这意味着它不能被继承。- 它包含一些静态方法和字段,用于与系统进行交互。
-
out
字段System.out
是System
类的一个静态字段,类型是PrintStream
。out
是一个PrintStream
对象,表示标准输出流,通常是控制台。
-
println
方法println
是PrintStream
类的一个方法,用于输出一行文本并换行。- 当你调用
System.out.println("hello world")
时,实际上是调用了PrintStream
对象的println
方法,将字符串"hello world"
输出到控制台。
System
类的部分源码(简化版)
为了更好地理解 System
类,我写出 System
类的一部分源码(简化版):
package java.lang;
public final class System {
public static final PrintStream out = ...; // 标准输出流
public static final PrintStream err = ...; // 标准错误输出流
public static final InputStream in = ...; // 标准输入流
// 其他静态方法和字段
}
PrintStream
类的部分源码(简化版)
PrintStream
类是 System.out
的类型,这里是 PrintStream
类的一部分源码(简化版):
package java.io;
public class PrintStream extends FilterOutputStream {
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
// 其他方法
}
总结
System
是一个预定义的类,提供了与系统进行交互的静态方法和字段。System.out
是System
类的一个静态字段,表示标准输出流。println
是PrintStream
类的一个方法,用于输出一行文本并换行。