请教:
1,
在书上看到:
对象数组保存的是引用 基本类型数组直接保存基本类型的值是什么意思
2,以前别人告诉我:int[]a = new int[3]; new int[3] 是在堆中分配了3个int类型的空间 “int[]a” 是在堆栈中分配了一个和“new int[3]”同样大小的空间 a指向了“new int[3]”假如a[1]=0;则堆中的和“a[1]”对应的那块空间的值也存储0 这样对吗
谢谢

解决方案 »

  1.   

    基本类型就是指 byte short int long float double boolean char 
      

  2.   

    a: type=int[] //Maybe Stack if declared as an auto variable, In heap if a member in a class.
    |
    |______[0]  [1]  [2] : type = int, In Heap.
      

  3.   

    1 基本类型如1楼所说,他们可以用一个简单的内存单元保存,比如int, 既然变量自己已经可以保存这个数据,何必再指向另一个地方呢?
    2 int[]a 是分配了一个变量引用,不是一个空间。 它指向了 new int[3] 的那个地址。
      

  4.   

    int[] a = new int[3];// 声明一个可以存放int基本类型的一维数组a, 将a这个数组初始化为长度为3, 每个元素的初始换值为0Image[] imgs = new Image[3];// 如果是一个存放对象引用的数组, 那么这样初始化后,虽然对数组初始化了,但是每个元素的初始化是为NULL
      

  5.   

    今天看书也看到了类似的东西,我的理解是当用new int[3]这种基本数据类型是会分配内存空间,而声名对象数组时只会得到一个引用数字,还需要生成实例,这个数组才有实体
      

  6.   


    感觉3楼的回答2好像有点不妥,int []a=new int[3]应该是直接在栈上分配三个数据单元用于存储数据。和int a,b,c本质上没有区别,个人理解,欢迎拍砖!