在《java编程思想》中曾将“引用”和“对象”的关系比喻为遥控器和电视机的关系,初学之时,刚读到这的时候理解起来还是有一些晦涩难懂。
到底什么是引用,什么是对象?比如java中创建一个Integer对象语句应该是“Integer in=new Integer()”,其中new Integer()就是对象,是在内存中开辟一个空间,用来存储一个Integer对象,而in就是一个引用,如果你用System.out.print(in);就会发现输出的实际上是一个十六进制的内存地址。
对象和引用的关系是什么?就好比要在学校(内存)找到一名学生(对象),怎么找呢?就得知道这名学生在第几层楼哪个班第几排(也就是内存地址——“引用”),引用类似c语言中的指针,本质是一个内存地址,指向的是一个内存空间里存储的对象。