开发者学堂课程【Java 面试疑难点串讲1:面试技巧及语言基础:引用传递是什么】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/24/detail/529
引用传递是什么
内容介绍
一、引用传递是什么
一、引用传递是什么
Java 的操作是属于引用传递还是数值传递?
现在唯一的回答有两句:
java 中包含数值传递与引用传递;.
没有认真学习 Java 的数据类型的划分。
之所以会有引用传递的概念,主要是在 java 里面为了更加简化的处理内存传递。
引用传递的本质在于:
同一块堆内存空间可以被不同的栈内存指向,引用数据类型的真正内容在堆内存里面。
而堆内存的名字或者是说如果想要找到堆内存的位置,那么就需要一个地址。
在此我们做一个简单的示例:
假设我们去超市,手里拿了东西。为了方便人们,就设置了储物柜。而每个储物柜上都有编号。假设我们打开3号储物柜,我们就会收到一张纸,等待购物完成之后我们就要根据这张纸来取物。所以我们可以把你真正需要的东西看做堆,如我们存储的物品,而栈则是存放找到它的地址,比如我们手中的纸。
而基本数据类型所进行的传递只是数值的传递。就好比你今天告诉我温度是多少度?30度,于是你只知道了这数值,而这个数值于你也只是属于一个拷贝。
而数值传递就好比内容被拷贝一份,原始数据与其无关,即便如何改变都和原始数据没关系。
引用传递示例:
class
电脑{
private int abc ;
private
主板对象;
private
显示器 [] 对象数组;
}
class
主板{
private
硬盘对象数组;
}
class
硬盘{ }
class
显示器{ }
java 的引用传递真的要比 C、CH+ 的指针简单了许多倍。
而且利用引用传递也可以实现对象的向上转型,所以整体的设计上来讲,Java 的内存的引用传递要比一些其它语言简单。