数组与内存控制
注:我已對(duì)本文章進(jìn)行了更新,勞煩移步。
java語言是典型的靜態(tài)語言,因而,數(shù)組也是靜態(tài)的,即當(dāng)該數(shù)組被初始化之后,該數(shù)組的長(zhǎng)度是不可變的。 java 語言的數(shù)組變量是引用類型,什么意思呢?意思就是,數(shù)組變量并不是數(shù)組本身,它只是指堆向內(nèi)存中的數(shù)組對(duì)象。如: 這3個(gè)變量以及各自引用的數(shù)組在內(nèi)存中的分配如圖: 對(duì)數(shù)組變量來說,它并不需要進(jìn)行所謂的初始化,只是讓數(shù)組變量指向一個(gè)有效的數(shù)組對(duì)象即可。 對(duì)Java程序來說,所有的引用類型的變量都不需要經(jīng)過所謂的初始化,需要進(jìn)行初始化的只是該引用變量所引用的對(duì)象。所有的局部變量都是存放在棧內(nèi)存中,不管其是引用類型的變量還是基本類型的變量,都是存儲(chǔ)在各自的方法棧區(qū)中;但引用類型變量所引用的對(duì)象(包括數(shù)組、普通的Java對(duì)象)則總是存儲(chǔ)在堆內(nèi)存中。
對(duì)于Java,堆內(nèi)存中的對(duì)象(不管是數(shù)組還是普通Java對(duì)象)通常不允許直接訪問,為了訪問堆內(nèi)存中的對(duì)象,通常只能通過引用變量。 數(shù)組變量都是存儲(chǔ)在棧內(nèi)存中的,但數(shù)組元素則作為數(shù)組對(duì)象的一部分被保存在堆內(nèi)存中,無論它們是基本類型的數(shù)組元素還是引用類型的數(shù)組元素。
?
轉(zhuǎn)載于:https://www.cnblogs.com/yaoyinglong/p/4097909.html
總結(jié)
- 上一篇: 消息称Intel 3nm核显GPU跳票
- 下一篇: 博客搬家算法伪码