Java中的引用

void main() {
    int[] a1 = {1,2,3,4,5};
    int[] a2;
    a2 = a1;
    for (int i=0;i
什么是引用?

  引用其实就像是一个对象的名字或者别名。一个对象在内存中会请求一块空间来保存数据,根据对象的大小,它可能需要占用的空间大小也不等。访问对象的时候,我们不会直接访问对象在内存中的数据,而是通过引用去访问。引用也是一种数据类型,我们可以把它想象为类似 C/C++ 语言中指针的东西,它指示了对象在内存中的地址——只不过我们不能够观察到这个地址究竟是什么。与之不同的是,C/C++的引用是同一块内存的不同名字,而Java的引用是指向一个对象,引用本身也占用了内存。
  对于基本数据类型来说,对象的引用,其实是在内存中新开辟了一个空间,把原对象的值放进新开辟的内存空间中。
  对于其他数据类型来说,对象的引用,其实是把新对象指向原对象的内存地址,两个对象共用一个内存空间。
  所以在上述代码中,数组不是基本数据类型,所以a1和a2指向了同一个内存空间,所以对其中任何一个进行更改,都会改变另一个的值。

你可能感兴趣的:(Java中的引用)