关于java对象引用的一个易混淆的问题
java中数据类型分2类,一种基本类型:包括int、short、long、char、float、double、boolean、byte;另外一种就是对象。对于java中的“引用”这个概念在这两种数据类型上处理方式是不一样的,例如:int intVal和Test t这2个变量,int intVal表示一个被称为intVal的存储地址,存放一个值为127,而Test t只表示存储了Test对象的地址,并没有存储Test对象所有的数据。若再声明一个Test t2=t的变量,则t2和t都是指向相同的一个对象地址,所以就会有以下情况发生:System.out.println(t2==t)输出true,System.out.println(t2.equal(t))输出true。但是若声明Test t3 = new Test(); t3=t;则t2和t指向同一个Test类的2个不同对象地址,所以System.out.println(t3==t)输出false,System.out.println(t3.equal(t))输出true
“==”比较对象是否是同一个,“equal”比较对象的值是否相同