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.
我想知道这两者之间是否有区别 例如
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.