Systemt.out.println()源码分析
时间: 2024-05-10 11:14:52 浏览: 111
`System.out.println()` 是 Java 语言中的一个输出语句,用于向控制台输出一行字符串,它的源码实现如下:
```java
public void println(String x) {
synchronized (this) {
print(x);
newLine();
}
}
```
可以看到, `println()` 方法实际上是调用了 `print()` 方法和 `newLine()` 方法。其中, `print()` 方法用于输出字符串, `newLine()` 方法用于输出一个换行符号。
下面是 `print()` 方法的源码实现:
```java
public void print(String s) {
if (s == null) {
s = "null";
}
write(s);
}
```
可以看到, `print()` 方法先判断字符串是否为 `null`,如果是,则将其替换为 `"null"`,然后调用 `write()` 方法输出字符串。
`write()` 方法是由 `PrintStream` 类实现的,其源码实现如下:
```java
public void write(String s) {
try {
synchronized (this) {
ensureOpen();
textOut.write(s);
textOut.flushBuffer();
charOut.flushBuffer();
if (autoFlush && (s.indexOf('\n') >= 0))
out.flush();
}
}
catch (InterruptedIOException x) {
Thread.currentThread().interrupt();
}
catch (IOException x) {
trouble = true;
}
}
```
可以看到, `write()` 方法首先确保输出流是打开状态,然后将字符串写入输出缓冲区,最后刷新缓冲区,确保字符串被输出到控制台上。
总的来说, `System.out.println()` 方法的源码实现相对简单,其核心代码是 `print()` 方法和 `write()` 方法。这些方法的实现细节都与输入输出流有关。
阅读全文