国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java中的堆與棧

2019-11-06 06:06:15
字體:
供稿:網(wǎng)友

詳見:http://www.cnblogs.com/whgw/archive/2011/09/29/2194997.html

java把內(nèi)存分成兩種,一種叫做棧內(nèi)存,一種叫做堆內(nèi)存

在函數(shù)中定義的一些基本類型的變量和對象的引用變量都是在函數(shù)的棧內(nèi)存中分配。當在一段代碼塊中定義一個變量時,java就在棧中為這個變量分配內(nèi)存空間,當超過變量的作用域后,java會自動釋放掉為該變量分配的內(nèi)存空間,該內(nèi)存空間可以立刻被另作他用。

堆內(nèi)存用于存放由new創(chuàng)建的對象和數(shù)組。在堆中分配的內(nèi)存,由java虛擬機自動垃圾回收器來管理。在堆中產(chǎn)生了一個數(shù)組或者對象后,還可以在棧中定義一個特殊的變量,這個變量的取值等于數(shù)組或者對象在堆內(nèi)存中的首地址,在棧中的這個特殊的變量就變成了數(shù)組或者對象的引用變量,以后就可以在程序中使用棧內(nèi)存中的引用變量來訪問堆中的數(shù)組或者對象,引用變量相當于為數(shù)組或者對象起的一個別名,或者代號。

引用變量是普通變量,定義時在棧中分配內(nèi)存,引用變量在程序運行到作用域外釋放。而數(shù)組&對象本身在堆中分配,即使程序運行到使用new產(chǎn)生數(shù)組和對象的語句所在地代碼塊之外,數(shù)組和對象本身占用的堆內(nèi)存也不會被釋放,數(shù)組和對象在沒有引用變量指向它的時候,才變成垃圾,不能再被使用,但是仍然占著內(nèi)存,在隨后的一個不確定的時間被垃圾回收器釋放掉。這個也是java比較占內(nèi)存的主要原因,實際上,棧中的變量指向堆內(nèi)存中的變量,這就是 Java 中的指針!

堆主要用來存放對象的,棧主要是用來執(zhí)行程序的


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 陆川县| 六盘水市| 元朗区| 蒙城县| 宁乡县| 龙南县| 从化市| 河池市| 沛县| 布拖县| 涟源市| 宜兰县| 蛟河市| 洪雅县| 桂东县| 新泰市| 商水县| 乌鲁木齐市| 维西| 綦江县| 许昌县| 诏安县| 土默特右旗| 绥滨县| 巧家县| 元氏县| 开封市| 佛坪县| 吴桥县| 达孜县| 息烽县| 永春县| 泸州市| 虞城县| 潜山县| 象州县| 夏津县| 墨脱县| 壤塘县| 镶黄旗| 宜兰县|