这更加清晰而不是怀疑。在以下内容中:
int a = 10;
System.out.println(a);
我得出的结论是变量' a'原始类型int
首先转换为Integer
Wrapper类对象,然后为该toString
对象调用Integer
方法,该对象以String形式返回整数值println
方法。我的理解是否正确?如果没有,那么正确的解释是什么?
答案 0 :(得分:6)
答案 1 :(得分:1)
如果您检查System.out
的类型,则会看到它是PrintStream
。 Read the docs.
引用:
public void println(int x)
Prints an integer and then terminate the line. This method behaves
as though it invokes print(int) and then println().
Parameters:
x - The int to be printed.
所以,不,没有转换到Integer
。 int
完全匹配上述方法的签名,因此调用该方法。内部发生的事情是未指定的,但它可能会直接调用Integer.toString()
,而不会转换为Integer
。
答案 2 :(得分:0)
不,我认为这不是你解释的方式。
System.out是PrintStream类的静态引用(存在于java.io包中),它具有直接打印基元的方法!!!
答案 3 :(得分:0)
确切地说,它实际上使用String.valueOf(int)
方法。
这是源代码,来自PrintStream
/**
* Prints the string representation of the int {@code i} followed by a newline.
*/
public void println(int i) {
println(String.valueOf(i));
}