指针和引用

54 阅读1分钟

指针

  1. 可以为空
  2. 定义时不需要马上赋值
  3. 跟指向对象是两个不同的内存地址
  4. 初始化后可以指向其他对象

引用

  1. 引用不可以为空
  2. 定义时必须给初始值
  3. 跟引用对象是同一个对象,即内存地址相同
  4. 初始化后不能再引用别的对象

区别

要想弄懂区别,那么就需要仔细琢磨定义

a. 作为形参:

  1. 如果我们方法内部,需要判断该值是否为空,那么需要使用指针
  2. 如果我们的方法内部,明确要求传参不能为空,那么传递引用是首选

b. 作为返回值:

  1. 如果想让返回值不可能为空,那么返回引用
  2. 否认使用指针

c. 变量分配:

指针是先申请一块内存,它里面的值为对象的地址

引用不会有内存申请,它就是源对象,只是在源代码级别的看起来像是另外一个变量

d. 当然它还会有其他区别,就不再一一列出,使用建议就是能用别名就用别名吧