ava语言是典型的静态语言,因而,数组也是静态的,即当该数组被初始化之后,该数组的长度是不可变的。
java 语言的数组变量是引用类型,什么意思呢?意思就是,数组变量并不是数组本身,它只是指堆向内存中的数组对象。如:
这3个变量以及各自引用的数组在内存中的分配如图:
对数组变量来说,它并不需要进行所谓的初始化,只是让数组变量指向一个有效的数组对象即可。
对Java程序来说,所有的引用类型的
变量都不需要经过所谓的初始化,需要进行初始化的只是该引用变量所引用的
对象。
所有的局部
变量都是存放在
栈内存中,不管其是引用类型的
变量还是基本类型的
变量,都是存储在各自的
方法栈区中;但引用类型变量所引用的
对象(包括数组、普通的Java对象)则总是存储在
堆内存中。
对于Java,堆内存中的对象(不管是数组还是普通Java对象)通常不允许直接访问,为了访问堆内存中的对象,通常只能通过引用变量。
数组变量都是存储在栈内存中的,但数组元素则作为数组对象的一部分被保存在堆内存中,无论它们是基本类型的数组元素还是引用类型的数组元素。