Java引用类型

题:

class ChangeIt

{

   static void doIt( int[] z )

    {

        int[] A = z;

        A[0] = 99;

    }

}

public class TestIt

{

    public static void main( String[] args )

    {

        int[] myArray = {1, 2, 3, 4, 5};

        ChangeIt.doIt(myArray);

        for (int i = 0; i < myArray.length; i++)

        {

            System.out.print(myArray[i] + " ");

        }

    }

}

选择: ( )

A .1 2 3 4 5

B. 99 2 3 4 5

C. 0 2 3 4 5

D. 99 99 99 99 99






答案为B, 这其中主要涉及java引用类型的地址传递.  all know在基本类型中等号赋值相当于值的拷贝

例如 A=1    B=A    则B=1

在引用类型中  int[] A = z; 会进行地址的拷贝


运行图解

由图看出数组A和Z同时指向了同一块地址,所以在数组A[0]=99 意味着数组Z指向的地址的对象也发生了改变!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容