前言
Java 区分值类型和引用类型。值类型就是基本的数值类型,如 int、double 等。除此之外的都
是引用类型。值类型和引用类型的区别可以通过下面这张图表达出来:
定义了一个值类型,它的自身内容就是 ;
定义了一个引用类型,它的自身内容是 ,而 存储的内容才是 。
可以这么说,
值类型是直接指向型,而引用类型是间接指向型
。如果我们引入间接指向层级的
概念,那值类型就是 0 级间接指向型,引用型就是 1 级间接指向型。如果这个概念成立,那更多级
的间接指向型也是存在的。没错,在 C/C++中,指针分为一级指针、二级指针…更多级指针。
引用传参
Java 在传递函数参数的时候对值类型和引用类型的处理是不一样的。
我们定义了一个函数 ,它被声明为接受一个值类型和一个引用类型。在调用
函数的时候,它的形参是重新分配的,就是说 和 的内存地址与 和 的内存地址是不一样的,但
是
它们都是把自身的内容直接传递给了对应的形参
。在这个过程中,值类型和引用类型的概念并未
发生变化:w 的目标内容是直接存储在自身地址的,所以仍然是值类型; 的目标内容存储在
的内存地址中,所以仍然是引用类型。
评论0
最新资源