
Java Integer包装类打印时为何不显示内存地址?
考虑以下Java代码:
Integer a = 1; System.out.println(a);
输出结果为:
1
为什么没有输出内存地址?
这是因为Integer a = 1;语句创建了一个Integer对象,其值为1。 当System.out.println(a);执行时,它并非直接打印对象的内存地址,而是调用了Integer类的toString()方法。
Integer类的toString()方法的实现类似于:
@Override
public String toString() {
return Integer.toString(value);
}
该方法将Integer对象的内部数值(value)转换为字符串,并将其打印到控制台。因此,我们看到的是数值1,而不是内存地址。 这是Java为了方便程序员而设计的默认行为,它自动将对象转换为其表示的字符串形式。 如果需要打印内存地址,则需要使用其他方法,例如反射机制。











