卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

js堆和棧的概念和區(qū)別 數(shù)據(jù)結(jié)構(gòu)的堆棧,和內(nèi)存空間的堆棧有什么區(qū)別和關(guān)系嗎?

數(shù)據(jù)結(jié)構(gòu)的堆棧,和內(nèi)存空間的堆棧有什么區(qū)別和關(guān)系嗎?在數(shù)據(jù)結(jié)構(gòu)中,棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。它是一種獨(dú)立于語(yǔ)言和平臺(tái)的概念或邏輯技術(shù)。內(nèi)存管理中的“?!睂?shí)際上分為堆和棧。以引用變量為例,引用變量本身

數(shù)據(jù)結(jié)構(gòu)的堆棧,和內(nèi)存空間的堆棧有什么區(qū)別和關(guān)系嗎?

在數(shù)據(jù)結(jié)構(gòu)中,棧是一種后進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)。它是一種獨(dú)立于語(yǔ)言和平臺(tái)的概念或邏輯技術(shù)。內(nèi)存管理中的“?!睂?shí)際上分為堆和棧。以引用變量為例,引用變量本身存儲(chǔ)在堆棧中,引用變量指向的值存儲(chǔ)在堆中。例如,int[]arr={1,2,3}變量arr(數(shù)組名)存儲(chǔ)在堆棧中,變量arr(數(shù)組元素)的值存儲(chǔ)在堆(普通結(jié)構(gòu))中。內(nèi)存棧管理采用數(shù)據(jù)結(jié)構(gòu)棧的思想,即遵循后進(jìn)先出的管理方法。例如,數(shù)據(jù)結(jié)構(gòu)中的堆棧是一種先進(jìn)的技術(shù),用于內(nèi)存管理和CPU調(diào)度。

js棧內(nèi)存和堆內(nèi)存的區(qū)別?

首先,JavaScript中的變量分為基本類型和引用類型。基本類型是存儲(chǔ)在堆棧內(nèi)存中的簡(jiǎn)單數(shù)據(jù)段,而引用類型是指存儲(chǔ)在堆內(nèi)存中的對(duì)象。

1. 基本類型

基本類型包括未定義、null、Boolean、number和string。這些類型在內(nèi)存中占據(jù)固定的空間,它們的值存儲(chǔ)在堆??臻g中,我們可以通過(guò)值訪問(wèn)堆??臻g。

2. 引用類型

引用類型。值大小不是固定的。堆棧內(nèi)存中的地址指向堆內(nèi)存中的對(duì)象。通過(guò)引用訪問(wèn)。如下圖所示:堆棧內(nèi)存只存儲(chǔ)對(duì)象的訪問(wèn)地址,并在堆內(nèi)存中為該值分配空間。因?yàn)檫@些值的大小不是固定的,所以不能保存到堆棧內(nèi)存中。但是內(nèi)存地址的大小是固定的,所以內(nèi)存地址可以保存在堆棧內(nèi)存中。這樣,當(dāng)查詢引用類型的變量時(shí),首先從堆棧中讀取內(nèi)存地址,然后通過(guò)地址在堆中找到值。為此,我們稱之為引用訪問(wèn)。當(dāng)我們看到一個(gè)變量類型已知時(shí),它會(huì)在堆棧中分配,比如int、double等。對(duì)于其他未知類型,比如用戶定義的類型,因?yàn)橄到y(tǒng)不知道它們需要多大,所以程序會(huì)應(yīng)用它們并在堆中分配它們。基本類型的大小是固定的,引用類型的大小不是固定的,它被分開存儲(chǔ)以最小化程序占用的內(nèi)存。

3. 堆棧內(nèi)存:存儲(chǔ)基本類型。堆內(nèi)存:存儲(chǔ)引用類型(在堆棧內(nèi)存中存儲(chǔ)基本類型值以在堆內(nèi)存中存儲(chǔ)對(duì)象的地址以引用對(duì)象。)

4?;愋蛯⒃诋?dāng)前執(zhí)行環(huán)境結(jié)束時(shí)銷毀,而引用類型不會(huì)在執(zhí)行環(huán)境結(jié)束時(shí)銷毀。只有當(dāng)引用它的所有變量都不存在時(shí),垃圾回收機(jī)制才會(huì)回收該對(duì)象。