精神小伙所必需知道的堆疊「精簡秘籍」

2021-10-23 10:37:39 字數 532 閱讀 4662

1.記憶體的分類

棧:由編譯器分配記憶體大小並自動清除,存放區域性變數

堆:由new分配記憶體,delete釋放記憶體,如果程式設計師沒有釋放則在程式結束後系統自動**

靜態/全域性儲存區:存放靜態變數和全域性變數(初始化[**段],未初始化[bass段])

常量儲存區:存放常量,不可修改

自由儲存區:由malloc分配記憶體,free釋放記憶體

ps:使用動態記憶體分配易產生記憶體洩漏(記憶體未釋放)以及記憶體碎片(釋放後的記憶體一般不連續且未得到利用)的問題

2.堆疊的區別

堆:生長方向向上,記憶體位址增加的方向,由程式設計師分配釋放記憶體,若不釋放,則由os(作業系統)**,順序隨意

棧:生長方向向下,記憶體位址減小的方向,由編譯器分配釋放記憶體,存放區域性變數,先進後出

3.堆疊的儲存效率

棧的儲存效率更高,理由如下:

1.棧有專門暫存器,出棧壓棧效率更高,而堆的訪問為間接定址方式

2.棧是編譯時就分配了記憶體,而堆是執行時分配的記憶體

3.棧的結構為先進後出,相對於堆的結構更加簡單

前端精神小伙 React Hooks 響應式布局

現在稍微大型的站點都會採用h5 pc端 並行,通過nignx獲取瀏覽器的ua資訊來切換站點。但這對於一些企業站點或人手不足的小型專案來說,就很難實現。通過css 查詢實現響應式布局,是主流方式。但是,有時在 react 程式中,需要根據螢幕大小有條件地渲染不同的元件 寫 查詢太麻煩了,還不如另寫元件...

軟體專案經理所必需具備的素質

軟體專案經理所必需具備的素質 hr管理世界 許多人都以為專案經理總是與 理想與光榮 相伴的,其實作為乙個有志於改進中國軟體開發流程的專案經理來說,他們承擔的更多的是 艱辛與痛苦 在這裡,我通過我擔任專案經理期間所遇到的種種現象,來總結專案經理所必需具備的素質,當這些素質您不具備的話,就需要花費多年的...

我所了解的乙個精神失常的程式設計師

不久前我們公司有個程式設計師精神失常。他走進經理辦公室開始大喊大叫,說著一些奇怪的事情。如果我不是像了解自己一下了解他,就會以為他磕了藥。但是事實上他簡直就是精神失常了。他是我在程式設計行業見過的最勤奮員工。他經常在下班後加班,週末的時候,當管理人員需要人手去處理緊急工作時,他總是隨叫隨到。在這個階...