java中的数组引用就是让数组b直接指向数组a(即b = a;)。在java编程中这样做的目的是为了提高程序运行的效率。
试想一下,假如数组中有上万个元素,在拷贝数组时,如果将数组a的所有元素都一一拷贝至数组b,时间开销很大,有时候也不是必需的。 所以,在Java语言中, b = a(a和b都是引用名)的含义就是将a起个别名"b"。 之后,a和b其实就是指向的是同一个对象。
在Java中,这种给变量取别名的机制称之为引用(reference)。 一个程序若想运行,必须驻入内存,而在内存中必然有其存储地址,通过这些内存地址,就可以找到我们想的数据。 这些内存地址通常都很长,因为不容易记住,所以就给这些地址取个名称,这就是引用变量,这些引用变量存储在一块名叫 “栈内存” 的区域。 那么所谓“引用”,就是Java对象在堆内存的地址赋给了多个“栈内存”的变量。 由于Java禁止用户直接操作“堆整型、浮点型、布尔型等基本数据类内存”中对象的地址,所以只能用这些“栈内存”的多个引用名来间接操作它们对应的“堆内存”数据。 所以,Java中的“引用”更类似于C/C++中的“指针”概念,所不同的是,C/C++中的“指针”可以被用户直接修改,而在Java中对内存的直接修改是被屏蔽的。 (责任编辑:admin) |