亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java系統的堆和棧介紹

發布時間:2020-05-28 11:47:27 來源:億速云 閱讀:216 作者:Leah 欄目:編程語言

Java系統的堆和棧是什么?很多人知道堆和棧但對Java系統的堆和棧的了解處于一知半解狀態,小編給大家總結了這篇文章,希望你能深刻理解Java系統的堆和棧。

1、棧區(stack)— 由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
2、堆區(heap)— 是一個可動態申請的內存空間(其記錄空閑內存空間的鏈表由操作系統維護),在java中,所有使用new xxx()構造出來的對象都在堆中存儲一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表。
堆是全局的,堆棧是每個函數進入的時候分一小塊,函數返回的時候就釋放了,靜態和全局變量,new得到的變量,都放在堆中,局部變量放在棧中,所以函數返回,局部變量就全沒了

棧(stack)與堆(heap)都是Java用來在Ram中存放數據的地方。與C++不同,Java自動管理棧和堆,程序員不能直接地設置棧或堆。

  1. 棧的優勢是,存取速度比堆要快,僅次于直接位于CPU中的寄存器。但缺點是,存在棧中的數據大小與生存期必須是確定的,缺乏靈活性。另外,棧數據可以共享,詳見第3點。
    堆(可以共享)的優勢是可以動態地分配內存大小,所有使用new xxx()構造出來的對象都在堆中存儲,生存期也不必事先告訴編譯器,Java的垃圾收集器會自動收走這些不再使用的數據。但缺點是,由于要在運行時動態分配內存,存取速度較慢。

  2. 常量池:存放字符串常量和基本類型常量(public static final)。
    常量池的好處是為了避免頻繁的創建和銷毀對象而影響系統性能,其實現了對象的共享。
    例如字符串常量池,在編譯階段就把所有的字符串文字放到一個常量池中。(1)節省內存空間:常量池中所有相同的字符串常量被合并,只占用一個空間。(2)節省運行時間:比較字符串時,==比equals()快。對于兩個引用變量,只用==判斷引用是否相等,也就可以判斷實際值是否相等。

如Integer, String, Double等將相應的基本數據類型包裝起來的類。這些類數據全部存在于堆中,Java用new()語句來顯示地告訴編譯器,在運行時才根據需要動態創建,因此比較靈活,但缺點是要占用更多的時間。

以上就是Java系統的堆和棧的詳細介紹了,看完之后是否有所收獲呢?如果想了解更多相關內容,歡迎關注億速云行業資訊!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

莆田市| 河间市| 德昌县| 嘉峪关市| 宜川县| 罗定市| 长海县| 惠水县| 泊头市| 洛阳市| 思茅市| 莎车县| 鞍山市| 五大连池市| 剑阁县| 望谟县| 青海省| 陇西县| 秀山| 巴楚县| 金塔县| 道真| 腾冲县| 蒙山县| 织金县| 山东省| 连江县| 东光县| 稻城县| 上饶县| 化隆| 西丰县| 阿尔山市| 无极县| 边坝县| 鄄城县| 中西区| 怀宁县| 成都市| 迁安市| 永和县|