试想一下,假如数组中有上万个元素,在拷贝数组时,如果将数组a的所有元素都一一拷贝至数组b,时间开销很大,有时候也不是必需的。
所以,在Java语言中, b = a(a和b都是引用名)的含义就是将a起个别名"b"。
之后,a和b其实就是指向的是同一个对象。
int[] a = new int[10]; int[] b; b = a;
在Java中,这种给变量取别名的机制称之为引用(reference)。
一个程序若想运行,必须驻入内存,而在内存中必然有其存储地址,通过这些内存地址,就可以找到我们想的数据。
这些内存地址通常都很长,因为不容易记住,所以就给这些地址取个名称,这就是引用变量,这些引用变量存储在一块名叫 “栈内存” 的区域。
那么所谓“引用”,就是Java对象在堆内存的地址赋给了多个“栈内存”的变量。
由于Java禁止用户直接 *** 作“堆整型、浮点型、布尔型等基本数据类内存”中对象的地址,所以只能用这些“栈内存”的多个引用名来间接 *** 作它们对应的“堆内存”数据。
所以,Java中的“引用”更类似于C/C++中的“指针”概念,所不同的是,C/C++中的“指针”可以被用户直接修改,而在Java中对内存的直接修改是被屏蔽的。
以上就是java数组的引用有什么意义的详细内容,
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)