国产探花免费观看_亚洲丰满少妇自慰呻吟_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ā)表
主站蜘蛛池模板: 平顶山市| 岳普湖县| 贵德县| 虞城县| 长乐市| 东明县| 清镇市| 淮北市| 凯里市| 林芝县| 常宁市| 松阳县| 外汇| 柏乡县| 乌兰浩特市| 石景山区| 镇康县| 神农架林区| 衡山县| 巴林左旗| 永济市| 本溪市| 宜宾市| 武乡县| 基隆市| 茌平县| 白水县| 延长县| 浪卡子县| 平定县| 延安市| 墨脱县| 屯昌县| 德庆县| 富阳市| 延川县| 汪清县| 铁力市| 六枝特区| 应城市| 安多县|