引用,你真的理解了吗?

引用是如何理解的

对于引用这个东西,我觉得大家多多少少有些了解,我也是的呐,但是最近的学习中,我发现,对于引用这个概念我也是大致的懂了,概念有些模棱两可,下面呢,我就简单的写一下最近学到的东西

首先呢,咱们先举一个小例子

public class Node {
    public int val;
    public Node next;
}
Node p = new Node();
Node q = new Node();
p==q;返回什么:p、q是否指向同一个对象
p != q;返回什么:p、q是否指向不同的对象

p = q;这句话你是怎么理解的呢?
是不是和我一样,让p这个引用指向q这个引用。注意哦,注意哦,这种说法是错误的,用的时候我想大家都知道怎么用,可是表达起来就会出错。
这句话转换成语言描述就是:让p这个引用指向q这个引用目前指向的对象 。
同理:
1、p.next = q;让p这个引用指向的对象中有一个next引用,让这个next引用指向q这个引用目前指向的对象。
2、p = q.next;p指向q这个引用的对象中的next引用指向的对象
3、p.next = q.next;让p的next引用指向q的next引用指向的对象

注意几个问题

大家先来判断一下对不对,Yes or No
1、引用可以指向两个引用吗?
2、一个引用可以同时指向两个对象吗?
3、p == null;应该如何表述呢?

首先:引用是不能指向引用的!!! 引用是一种只能指向对象的数据类型!
引用和对象的关系

引用不可以同时指向两个引用!(但是引用的对象是可以变得)
在这里插入图片描述

p == null;应该如何表述呢?p这个引用不指向任何对象(无论原来p指向哪个对象,现在p不再指向任何对象了)

总结:

  1. 引用只能指向对象
  2. 引用不能指向对象
  3. 没有对象指向这回事(更没有对象指向对象,没有对象指向引用)
  4. 在任意时刻:一个引用最多只能指向一个对象,但是一个对象可以同时被多个引用指向
  5. 引用 = null;引用不指向任何对象;
  6. 引用 == null;返回引用当前是否没有指向任何对象
  7. 引用 !=null;返回引用当前是否又指向任何对象
  8. 引用是引用,对象是对象,不是一回事儿
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值