Java中的引用变量相当于C语言中的指针,它的作用是指向某个对象.比如
Child t;
t=new Child();
t 是 一个引用变量,指向了一个Child类型的对象.内存中,你首先声明了一个Child类型的引用变量,然后你创建了一个Child对象,并 把这个对象在堆内存中的地址赋给t,这个地址就是引用变量的值,t是引用变量的名.
由于Java中无法直接使用具体的对象,因此都是通过对象的引用来操作对象的.有的书上,把引用变量也称为对象句柄.好比你要用勺喝汤,而引用变量或对象句柄就是勺的把手,通过它来实现属于勺这个对象的喝汤的方法.
最后,引用变量以对象的形式存在,引用变量只是保存对象的句柄?
前半句的意思是引用变量是指向对象的
后半句的意思是引用变量保存了对象在堆内存中的存储地址,引用变量也被称为对象句柄
如果一个java对象改写了toString方法,就不会打印出内存地址,而是直接调用了他的toString方法。
在源码中,比如System.out.println()方法,用它来打印一个对象。它会首先判断一下该对象是否为null,如果为null,就直接打印出一个null的字符串。如果不为null,就自动调用该对象的toString方法。
所以,如果改写了toString,就会直接调用toString方法了。如果没有,就是调用父类Object中的toString方法,也就是打印出内存地址。