java笔记之数组

数组定义在栈中,其内容存储在堆中。

图1为定义并创建两个不相关数组的过程。java笔记之数组
图2为定义并创建两个数组且arrayB定义时将arrayA的地址赋给arrayB。由于两个数组指向同一块堆中的地址,故改变任一数组中的值时,另一数组值也随之改变。java笔记之数组
之后,我想到之前写C或者C++时,好像从未遇到这种情况,就试着写类似的C++程序,发现C++中在定义一个新数组时,不可直接将一个已有数组的地址值赋给新数组,因为C++中定义时就给了新数组开辟了地址,而Java中是new时才给数组开辟地址空间,定义数组只不过是给数组名一个栈中用来存放地址的空间而已。