注:我已對本文章進行了更新,勞煩移步。
java語言是典型的靜態語言,因而,數組也是靜態的,即當該數組被初始化之后,該數組的長度是不可變的。
java 語言的數組變量是引用類型,什么意思呢?意思就是,數組變量并不是數組本身,它只是指堆向內存中的數組對象。如:
這3個變量以及各自引用的數組在內存中的分配如圖:
對數組變量來說,它并不需要進行所謂的初始化,只是讓數組變量指向一個有效的數組對象即可。
對Java程序來說,所有的引用類型的變量都不需要經過所謂的初始化,需要進行初始化的只是該引用變量所引用的對象。
所有的局部變量都是存放在棧內存中,不管其是引用類型的變量還是基本類型的變量,都是存儲在各自的方法棧區中;但引用類型變量所引用的對象(包括數組、普通的Java對象)則總是存儲在堆內存中。
對于Java,堆內存中的對象(不管是數組還是普通Java對象)通常不允許直接訪問,為了訪問堆內存中的對象,通常只能通過引用變量。
數組變量都是存儲在棧內存中的,但數組元素則作為數組對象的一部分被保存在堆內存中,無論它們是基本類型的數組元素還是引用類型的數組元素。
?