System.out.println
方法如何在静态和非静态上下文中工作?
是否有任何特定于 JVM 的实现可以解决这个问题?
最佳答案
System.out
是静态字段/全局对象/单例。
它随处可访问,不需要非静态上下文。
在该对象(PrintStream
实例)上,您可以调用 println
方法。
请注意 PrintStream#println
不是静态方法。但是您甚至可以从静态方法调用非静态方法,只要您有一个实例可以调用它们(例如此处的 System.out
)。
静态与非静态上下文只有在您需要访问 this
(您自己类的当前实例)时才会有所不同。此处不需要(除非您想执行 System.out.println(this)
—— 这在静态方法内部不起作用)。
这些都不是关于 System.out
的“特殊”,也不需要内部 JVM 魔法。
关于java - 在 java 中,System.out.println 方法如何在静态和非静态上下文中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58029235/