请问:
int x[] = new int[100];
x[0]=333;
我可不可以这样理解:
引用变量x指向数组的一个对象的首地址 333赋给了这个首地址和x的地址 这两个地址都装下了333这个数
释放后这个首地址所存储这值又变为0
谢谢 
我主要是对引用变量怎样引用不明白 

解决方案 »

  1.   

    x 是一个指针 指向了后面的地址空间
    int[] 是一块内存空间
    他的第一个地址保存的是333
      

  2.   

    当你定义了一个引用类型的变量的时候java会在栈内存分配空间,也就是引用变量x的内存空间,初始值为null。
    当用 new int[100];给数组分配空间的时候,这个空间在堆内存分配。并将该内存空间的首地址保存到引用变量x中;
    也就是说x保存的是对象内存的首地址。
    当x[0]=333;给数组成员赋值的时候并不影响x的值,而是将变量x中保存的地址所指向的堆内存中的第一个内存空间值改变为333;
      

  3.   

    java设计的一个目标是内存分布对程序员应该透明,也就是说java程序员没有必要去关心内存是如何存放数据的,应该关心的是垃圾回收机制(Garbage Collection)java的引用有点相似于c语言中的句炳(handler),也就是一个指针的指针