引用在作用上其实就是一个阉割版的指针,功能上只能用来指向对象,保存对象的地址。在赋值操作和比较操作时,和这些符号平时的意义并不相同。
引用的赋值操作
在引用中,赋值操作符的作用是让被赋值的符号指向赋值的对象。
int[] arr = {1, 2, 3};
// arr 就是被赋值的符号,{1, 2, 3} 是赋值的对象
把一个被赋值的符号赋值给另一个符号,真正意义是让另一个符号也指向前一个符号所指的对象。
int[] arr2 = arr;
// arr 是指向 {1, 2, 3} 的符号,arr2 被赋值后,也指向 {1, 2, 3}
引用的比较操作
在引用中,比较操作符中的 == 和 != 被用于判断两个符号是否指向同一个对象。
arr == arr2;
// true
arr2 = null;
// 让 arr2 不指向对象
arr == arr2;
// false
arr = null;
arr == arr2;
// true