java system.out.println() 和 println() 的区别

java difference between system.out.println() and println()

我想知道这两者之间是否有区别 例如

System.out.println("Hello World");

println("Hello World");

我知道他们打印的是同样的东西,但有什么不同吗? (我是 java 的新手,所以我目前还不知道)

换句话说,"System.out" 有什么改变吗?

您可能有一个名为 println 的本地方法或静态导入。所以:

private void println(String str) {
    //
}

import static java.lang.System.out;

但它必须是:

out.println("bla bla");

如果您使用的是 IDE,请尝试打开其声明(在 Eclipse 中为 F3)并查看它会将您带到何处。

是的,有区别,因为他们调用的不是同一个方法。

假设第二条语句实际编译,这意味着 println("Hello World") 调用是针对以下任一方法:

  • 在您的 class
  • 中定义
  • 继承自超级class
  • 从接口继承的默认方法(Java 8+)
  • 静态导入1

现在,local/inherited/importedprintln(String s)方法可以调用System.out.println(s),这将使它行为与直接调用System.out.println(s)相同,但不同。


1) 因为你不能静态导入java.lang.System.out.println()(它不是静态方法),它必须从其他一些静态导入class.