我试图了解 System.out 如何调用 println()。所有的搜索都说 System.out 是 PrintStream 类的一个实例,因此它可以调用该类中的方法。
但...
当我尝试使用以下 NullPointerException 结果复制它时。
public class Main {
public static void main(String[] args){
Tasker.calc.add(1, 2);
}
}
class Tasker{
static Calc calc;
}
class Calc {
public void add(int x, int y){
System.out.println(x+y);
}
}
Tasker.calc 不是 Calc 的类似实例吗?System.out 如何不是 NullPointerException?
需要明确的是,这不是关于 NullPointerException 的问题……这是关于为什么 System.out 不需要初始化的问题。
谢谢一堆!
为什么System.out
不需要初始化?出色地 ...
在System
类的深处,有一个initializeSystemClass
JVM 调用的方法。它设置System.out
为正确的值,因此您不必这样做。
请注意,这System.out
不是 的实例PrintStream
- 它是对PrintStream
.
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句