迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java system.out.println() 方法

作者:迹忆客 最近更新:2023/11/13 浏览次数:

本文介绍了 System.out.println() 方法在 Java 中的工作原理,并列出了一些示例代码来理解该主题。

System.out.print() 是一种非常常用的打印到控制台或标准输出的方法。这种方法有时称为打印线方法。除了打印到控制台之外,println() 方法将光标移动到一个新行。

在本教程中,我们将尝试了解此方法的内部工作原理。


什么是 System.out.println() 方法

  • System.out.println() 可以分为三个部分。
  • Systemjava.lang 包的最后一个类,它在 JVM 启动时自动初始化initializeSystemClass() 用于初始化它。
  • System 类包含 PrintStream 类的实例。这个实例变量被称为 out。它使用修饰符 publicstaticfinal 定义。
class System {
  public static final PrintStream out;
  // More Code Below
}

PrintStream 类包含 print()println() 方法。这些方法是重载的。

class PrintStream {
  public void print(argument) {
    // implementation
  }
  public void println() {
    // implementation
  }
  // Overloaded print() and println() methods below
}

因此,System.out 为我们提供了 PrintStream 类的 out 实例变量。然后我们可以在这个实例变量上调用 print()println() 方法。


System.out.println() 是如何工作的

  • PrintStream 类包含多个重载的 print()println() 方法。它们在接受的参数类型上有所不同。
  • 所有这些的返回类型都是无效的。
  • 所有原始类型都存在重载方法。
  • 它还包含一个用于打印字符串的重载方法和另一个用于对象的重载方法。

下面的代码演示了重载的 println() 方法的工作。

public class PrintDemo {
  public static void main(String args[]) {
    int i = 10;
    short s = 10;
    long l = 10;
    char c = 'A';
    char[] charArr = {'A', 'B', 'C'};
    boolean bool = true;
    double d = 10.0;
    float f = 10.0f;
    String str = "hello";
    Object o = new Object();

    System.out.println(); // terminate the current line
    System.out.println(i); // print integer
    System.out.println(s); // print short
    System.out.println(l); // print long
    System.out.println(c); // print char
    System.out.println(charArr); // print char array
    System.out.println(bool); // print boolean
    System.out.println(d); // print double
    System.out.println(f); // print float
    System.out.println(str); // print String
    System.out.println(o); // print Object
  }
}

输出:

10
10
10
A
ABC
true
10.0
10.0
hello
java.lang.Object@433c675d

传递给 println() 方法的参数

  • 初学者可能认为 print()println() 方法采用可变数量的参数 (varargs),但事实并非如此。
  • 例如,在下面的代码中,我们试图打印一个整数、一个字符串和一个字符。
public class PrintDemo {
  public static void main(String args[]) {
    int i = 10;
    String s = "hello";
    char c = 'O';
    System.out.println(i + s + c);
  }
}

输出:

10helloO
  • 但我们没有传递三个不同的参数。逗号分隔方法的参数。
  • 相反,它们使用 println() 方法中的 + 运算符连接在一起。
  • 与字符串一起使用的 + 运算符将导致字符串连接并返回一个字符串。
  • 在上面的代码中,整数首先与字符串连接,结果字符串再次与 char 变量连接。

另一件需要注意的是,传递给方法的参数是从左到右计算的。因此,如果传递的前两个变量是整数,则进行正常的算术加法,并将加法结果与字符串连接起来。

public class PrintDemo {
  public static void main(String args[]) {
    System.out.println(10 + 10 + "hello"); // first integer addition and then string concatenation
  }
}

输出:

20hello

但是如果字符串后面还有两个整数,就会发生字符串连接。

public class PrintDemo {
  public static void main(String args[]) {
    System.out.println(10 + 10 + "hello" + 1 + 1); // 20hello11 not 20hello2
  }
}

输出:

20hello11

我们可以从左到右应用下面显示的规则来计算输出。如果不存在字符串,则进行正常的算术加法。

(any data type + string) = (string + any data type) = (concatenated string)

toString()print() 方法中的作用

print()println() 方法隐式调用参数的 toString() 方法。它将参数转换为字符串。如果我们想以特定方式打印用户定义的类实例,这非常有用。

我们可以覆盖我们类中的 toString() 方法,以不同的格式打印我们的对象。以下示例演示了这一点。

示例:不覆盖 toString() 方法。

class Demo {
  String field1;
  String field2;

  Demo(String f1, String f2) {
    this.field1 = f1;
    this.field2 = f2;
  }
}
public class PrintDemo {
  public static void main(String args[]) {
    Demo d = new Demo("f1", "f2");
    System.out.print(d);
  }
}

输出:

Demo@433c675d

示例:在重写 toString() 方法之后。

class Demo {
  String field1;
  String field2;
  Demo(String f1, String f2) {
    this.field1 = f1;
    this.field2 = f2;
  }
  @Override
  public String toString() {
    return field1 + " " + field2;
  }
}
public class PrintDemo {
  public static void main(String args[]) {
    Demo d = new Demo("f1", "f2");
    System.out.print(d);
  }
}

输出:

f1 f2

概括

print()println() 方法是 PrintStream 类的一部分。它们是通过使用 System.out 实例变量访问的。这些方法被重载以处理不同的参数类型。请记住,这些方法不接受可变数量的参数。在本教程中,我们学习了 System.out.print()System.out.println() 方法的工作原理。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Java 中的计数器

发布时间:2023/11/16 浏览次数:177 分类:Java

它描述了 Java 中计数器变量的使用今天我们将讨论 Java 中的 counter 变量。在接下来的部分中,我们将看到如何使用 counter 变量。

Java 中 static 变量和 final 变量之间的区别

发布时间:2023/11/16 浏览次数:143 分类:Java

它显示了 Java 中静态变量和最终变量之间的区别。此外,将通过代码示例讨论这两个变量的使用。本文展示了 static 和 final 关键字之间的区别。让我们以表格格式和工作示例讨论差异。

在 Java 中设置 JAVA_HOME 变量

发布时间:2023/11/16 浏览次数:149 分类:Java

本文介绍如何在 Java 中设置 java_home 变量。在本文中,我们将学习如何在 windows 中设置 JAVA_HOME 变量。Java_Home 是一个引用变量,

在 Java 中强制转换变量

发布时间:2023/11/16 浏览次数:100 分类:Java

本文介绍如何在 Java 中强制转换变量。本文介绍如何在 Java 中强制转换变量或将变量转换为另一种类型。转换用于在编程语言中将一个值/变量转换/转换为另一种类型。

在 Java 中打印新行

发布时间:2023/11/16 浏览次数:148 分类:Java

本文介绍如何在 Java 中打印新行。新行表示行的结尾或新行的开始。也称为换行符,EOL(行尾)或换行符。

在 Java 中打印表格

发布时间:2023/11/16 浏览次数:160 分类:Java

这篇文章说明了如何在 Java 中打印表格要在 Java 中以表格结构打印任何信息,我们可以使用 java.io.PrintStream 类的 printf() 或 format() 方法。

如何在 Java 中获取用户输入

发布时间:2023/11/16 浏览次数:160 分类:Java

本文介绍了在 Java 中获取用户输入的最简单方法。在本文中,我们将讨论在 Java 中获取用户输入的最佳方法。虽然有很多方法,但其中一些方法已经被废弃,因此我们将避免使用它们。

在 Java 中初始化布尔变量

发布时间:2023/11/15 浏览次数:83 分类:Java

本文介绍如何在 Java 中初始化布尔变量。在 Java 中,Boolean 是包装原始数据类型 boolean 类型的包装类。

使用 Java 中的 printf() 方法打印布尔值

发布时间:2023/11/15 浏览次数:93 分类:Java

本文介绍了在 Java 中打印布尔值的 printf() 方法。本文介绍了在 Java 中打印布尔值的 printf() 方法。Boolean 是 Java 中的一种数据类型,它包含 true 或 false 文字。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便