tft每日頭條

 > 生活

 > 堆與棧知識

堆與棧知識

生活 更新时间:2024-08-16 14:26:16

堆與棧知識?1.内存區域類型*.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制;,下面我們就來聊聊關于堆與棧知識?接下來我們就一起去了解一下吧!

堆與棧知識(易懂易記憶式堆與棧的總結理解)1

堆與棧知識

1.内存區域類型

*.寄存器:最快的存儲區, 由編譯器根據需求進行分配,我們在程序中無法控制;

*. 棧:存放基本類型的變量數據和對象的引用,但對象本身不存放在棧中,而是存放在堆(new 出來的對象)或者常量池中(對象可能在常量池裡)(字符串常量對象存放在常量池中。);

*. 堆:存放所有new出來的對象;

*. 靜态域:存放靜态成員(static定義的);

*. 常量池:存放字符串常量和基本類型常量(public static final)。有時,在嵌入式系統中,常量本身會和其他部分分割離開(由于版權等其他原因),所以在這種情況下,可以選擇将其放在ROM中 ;

*. 非RAM存儲:硬盤等永久存儲空間

2.堆棧空間分配

棧(操作系統):由操作系統自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。

堆(操作系統): 一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收,分配方式倒是類似于鍊表

3.堆棧緩存方式

棧使用的是一級緩存, 他們通常都是被調用時處于存儲空間中,調用完畢立即釋放。

堆則是存放在二級緩存中,生命周期由虛拟機的垃圾回收算法來決定(并不是一旦成為孤兒對象就能被回收)。所以調用這些對象的速度要相對來得低一些。

4、數據結構中的堆和棧

堆和棧在數據結構中是兩種不同的數據結構。 兩者都是數據項按序排列的數據結構。

棧:像是裝數據的桶或者箱子

棧是大家比較熟悉的一種數據結構,它是一種具有後進先出的數據結構,也就是說後存放的先取,先存放的後取,這就類似于我們要在取放在箱子底部的東西(放進去比較早的物體),我們首先要移開壓在它上面的物體(放入比較晚的物體)。

堆:像是一顆倒立的大樹

堆是一種經過排序的樹形數據結構,每個節點都有一個值。通常我們所說的堆的數據結構是指二叉樹。堆的特點是根節點的值最小(或最大),且根節點的兩個樹也是一個堆。由于堆的這個特性,常用來實現優先隊列,堆的存取是随意的,這就如同我們在圖書館的書架上取書,雖然書的擺放是有順序的,但是我們想取任意一本時不必像棧一樣,先取出前面所有的書,書架這種機制不同于箱子,我們可以直接取出我們想要的書。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved