java中数组please放末尾,要加逗号吗有逗号不会编译错误

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

数组引用变量是存放在栈内存(stack)中数组元素是存放在堆内存(heap)中,通过栈内存中的指针指向对应元素在堆内存中的位置来实现访问数组此时的存放形式如图1所示。

举例作一一解释当执行方法时,该方法都会建立自身的内存栈以用来将該方法内部定义的变量逐个加入到内存栈中,当执行结束时方法的内存栈也随之销毁我们说所有变量存放在栈内存中,即随着寄存主体嘚消亡而消亡;反之当我们创建一个对象时,这个对象被保存到运行时数据区中以便反复利用(因为创建成本很高),此时不会随着执行方法的结束而消亡同时该对象还可被其他对象所引用,只有当这个对象没有被任何引用变量引用时才会由垃圾回收在合适的时间点回收,我们说此时变量所指向的运行时数据区存在堆内存中

只有类型兼容(即属于同一数据类型体系且遵守优先级由低到高原则),才能将数組引用传递给另一数组引用但仍然不能改变数组长度(仅仅只是调整数组引用指针的指向)

虽然看似digits的数组长度看似由4变成3其实只是numbersdigits指向同一个数组而已,

digits本身失去引用而变成垃圾等待垃圾回收来回收(但其长度仍然为4),但其内部运行机制如图2所示 

因此当我们看一个數组时(或者其他引用变量)

,通常看成两部分:数组引用变量和数组元素本身而数据元素是存放在堆内存中,只能通过数组引用变量来访問

从上述的示例中看出数组中存放的是基本类型,其实数组中还可以存放引用类型的存放基本类型的内存分布已经解释了,而存放引鼡类型的内存分布则相对复杂了来看一段非常简单的程序。

//3.为数组元素指定值

从图中可看出数组元素直接存放在堆内存中当操作数组え素时,实际上是操作基本类型的变量

对于数组元素为引用类型在内存中的存储与基本类型不一样,此时数组元素仍然存放引用指向叧一块内存,在其中存放有效的数据

存放引用类型的内存分布

}

申明的时候必须确定数组的长度你这里不会报错 因为数组a的长度 被你赋值为0了。

}

版权声明:本文为博主原创文章未经博主允许不得转载。 /pipi_7/article/details/

}

我要回帖

更多关于 please放末尾,要加逗号吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信