黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 4個(gè)Java堆棧核心問題

4個(gè)Java堆棧核心問題

更新時(shí)間:2021-02-03 17:27:45 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1328次

在計(jì)算機(jī)領(lǐng)域,堆棧是一個(gè)不容忽視的概念,堆棧都是一種數(shù)據(jù)項(xiàng)按序排列的數(shù)據(jù)結(jié)構(gòu),只能在一端(稱為棧頂(top))對(duì)數(shù)據(jù)項(xiàng)進(jìn)行插入和刪除。在單片機(jī)應(yīng)用中,堆棧是個(gè)特殊的存儲(chǔ)區(qū),主要功能是暫時(shí)存放數(shù)據(jù)和地址,通常用來(lái)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。堆棧的學(xué)習(xí)我們需要抓住核心問題,這樣我們才能以點(diǎn)帶面,學(xué)好整個(gè)堆棧。本文我們就來(lái)介紹4個(gè)Java堆棧核心問題

1、在通常情況下由操作系統(tǒng)(OS)和語(yǔ)言的運(yùn)行時(shí)(runtime)控制嗎?

如前所述,堆和棧是一個(gè)統(tǒng)稱,可以有很多的實(shí)現(xiàn)方式。計(jì)算機(jī)程序通常有一個(gè)棧叫做調(diào)用棧,用來(lái)存儲(chǔ)當(dāng)前函數(shù)調(diào)用相關(guān)的信息(比如:主調(diào)函數(shù)的地址,局部變量),因?yàn)楹瘮?shù)調(diào)用之后需要返回給主調(diào)函數(shù)。棧通過擴(kuò)展和收縮來(lái)承載信息。實(shí)際上,程序不是由運(yùn)行時(shí)來(lái)控制的,它由編程語(yǔ)言、操作系統(tǒng)甚至是系統(tǒng)架構(gòu)來(lái)決定。 堆是在任何內(nèi)存中動(dòng)態(tài)和隨機(jī)分配的(內(nèi)存的)統(tǒng)稱;也就是無(wú)序的。內(nèi)存通常由操作系統(tǒng)分配,通過應(yīng)用程序調(diào)用 API 接口去實(shí)現(xiàn)分配。在管理動(dòng)態(tài)分配內(nèi)存上會(huì)有一些額外的開銷,不過這由操作系統(tǒng)來(lái)處理。

2、堆棧的作用范圍是什么?

調(diào)用棧是一個(gè)低層次的概念,就程序而言,它和“作用范圍”沒什么關(guān)系。如果你反匯編一些代碼,你就會(huì)看到指針引用堆棧部分。就高級(jí)語(yǔ)言而言,語(yǔ)言有它自己的范圍規(guī)則。一旦函數(shù)返回,函數(shù)中的局部變量會(huì)直接直接釋放。你的編程語(yǔ)言就是依據(jù)這個(gè)工作的。

在堆中,也很難去定義。作用范圍是由操作系統(tǒng)限定的,但是你的編程語(yǔ)言可能增加它自己的一些規(guī)則,去限定堆在應(yīng)用程序中的范圍。體系架構(gòu)和操作系統(tǒng)是使用虛擬地址的,然后由處理器翻譯到實(shí)際的物理地址中,還有頁(yè)面錯(cuò)誤等等。它們記錄那個(gè)頁(yè)面屬于那個(gè)應(yīng)用程序。不過你不用關(guān)心這些,因?yàn)槟銉H僅在你的編程語(yǔ)言中分配和釋放內(nèi)存,和一些錯(cuò)誤檢查(出現(xiàn)分配失敗和釋放失敗的原因)。

3、堆棧的大小由什么決定?

依舊,依賴于語(yǔ)言,編譯器,操作系統(tǒng)和架構(gòu)。棧通常提前分配好了,因?yàn)闂1仨毷沁B續(xù)的內(nèi)存塊。語(yǔ)言的編譯器或者操作系統(tǒng)決定它的大小。不要在棧上存儲(chǔ)大塊數(shù)據(jù),這樣可以保證有足夠的空間不會(huì)溢出,除非出現(xiàn)了無(wú)限遞歸的情況(額,棧溢出了)或者其它不常見了編程決議。

堆是任何可以動(dòng)態(tài)分配的內(nèi)存的統(tǒng)稱。這要看你怎么看待它了,它的大小是變動(dòng)的。在現(xiàn)代處理器中和操作系統(tǒng)的工作方式是高度抽象的,因此你在正常情況下不需要擔(dān)心它實(shí)際的大小,除非你必須要使用你還沒有分配的內(nèi)存或者已經(jīng)釋放了的內(nèi)存。

4、堆和棧哪個(gè)更快一些?

棧更快因?yàn)樗械目臻e內(nèi)存都是連續(xù)的,因此不需要對(duì)空閑內(nèi)存塊通過列表來(lái)維護(hù)。只是一個(gè)簡(jiǎn)單的指向當(dāng)前棧頂?shù)闹羔槨>幾g器通常用一個(gè)專門的、快速的寄存器來(lái)實(shí)現(xiàn)。更重要的一點(diǎn)事是,隨后的棧上操作通常集中在一個(gè)內(nèi)存塊的附近,這樣的話有利于處理器的高速訪問。

以上就是關(guān)于4個(gè)Java堆棧核心問題的講解,棧是一種先進(jìn)后出的數(shù)據(jù)結(jié)構(gòu),堆可以被看成是一棵樹,如:堆排序。在Java中,棧與堆都是Java用來(lái)在Ram中存放數(shù)據(jù)的地方,所以,堆棧在很多地方都有相似之處,這也是我們把堆和棧放在一起的原因。想要學(xué)好堆棧,光靠這幾個(gè)核心問題是遠(yuǎn)遠(yuǎn)不夠的,在本站的數(shù)據(jù)結(jié)構(gòu)和算法教程中有著堆棧的全面解析,感興趣的小伙伴可以前去學(xué)習(xí)。

 

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 亚洲视频a | 日韩精品免费一区二区 | 日韩黄色免费观看 | 欧美 日产 国产精品 | 日本老年人精品久久中文字幕 | 美女图片在线视频精品播放 | 三级网站 | 天堂网视频 | 在线小毛片 | 亚洲欧美日韩视频一区 | 92精品国产自产在线 | 亚洲免费成人网 | 日韩免费高清一级毛片 | 色久在线 | 亚洲系列第一页 | 欧美性导航 | 蜜桃97爱成人 | www.av一区 | 国产91色拍 | 日韩精品视频在线播放 | 男女在线无遮挡毛片免费 | 亚洲免费视频网址 | 亚洲青青青网伊人精品 | 你懂的免费在线观看 | 高清人人天天夜夜曰狠狠狠狠 | 国产视频色 | 久久久久亚洲日日精品 | a级大片在线观看 | 欧美日产国产亚洲综合图区一 | 韩国伦理片在线观看 | 亚洲国产欧美在线观看 | 日本精a在线观看 | 性欧美疯狂猛交69hd | 窝窝免费午夜视频一区二区 | 2020欧美极品hd18 | 黄网免费在线观看 | 国产精品密蕾丝视频 | 97免费视频在线观看 | 欧美视频精品 | 高h浪诱受肉耽文 | 在线视频一区二区日韩国产 |