第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

什么是拳擊和拆箱以及有什么權(quán)衡取舍?

什么是拳擊和拆箱以及有什么權(quán)衡取舍?

什么是拳擊和拆箱以及有什么權(quán)衡取舍?我正在尋找一個(gè)清晰,簡潔和準(zhǔn)確的答案。理想情況下,作為實(shí)際答案,雖然歡迎鏈接到良好的解釋。
查看完整描述

3 回答

?
互換的青春

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

盒裝值是圍繞基本類型 *的最小包裝器的數(shù)據(jù)結(jié)構(gòu)。盒裝值通常存儲為堆上對象的指針。

因此,盒裝值使用更多內(nèi)存并至少需要兩次內(nèi)存查找才能訪問:一次獲取指針,另一次跟隨指向該基元的指針。顯然,這不是你想要在內(nèi)循環(huán)中的那種東西。另一方面,盒裝值通常與系統(tǒng)中的其他類型相比更好。由于它們是該語言中的一流數(shù)據(jù)結(jié)構(gòu),因此它們具有其他數(shù)據(jù)結(jié)構(gòu)所具有的預(yù)期元數(shù)據(jù)和結(jié)構(gòu)。

在Java和Haskell中,泛型集合不能包含未裝箱的值。.NET中的通用集合可以保留未裝箱的值而不會受到懲罰。在Java的泛型僅用于編譯時(shí)類型檢查的情況下,.NET將為在運(yùn)行時(shí)實(shí)例化的每個(gè)泛型類型生成特定的類。

Java和Haskell有未裝箱的數(shù)組,但它們明顯不如其他集合方便。但是,當(dāng)需要達(dá)到峰值性能時(shí),為避免裝箱和拆箱的開銷值得一點(diǎn)不便。

*對于此討論,原始值是可以存儲在調(diào)用堆棧中的任何值,而不是存儲為指向堆上的值的指針。通常,這只是機(jī)器類型(整數(shù),浮點(diǎn)數(shù)等),結(jié)構(gòu),有時(shí)是靜態(tài)大小的數(shù)組。.NET-land將它們稱為值類型(與引用類型相反)。Java人稱它們?yōu)樵碱愋?。Haskellions只是將它們稱為未裝箱。

**我也在這個(gè)答案中專注于Java,Haskell和C#,因?yàn)檫@就是我所知道的。對于它的價(jià)值,Python,Ruby和Javascript都只有盒裝價(jià)值。這也被稱為“一切都是對象”的方法***。

***警告:在某些情況下,足夠先進(jìn)的編譯器/ JIT實(shí)際上可以檢測到在查看源時(shí)語義上裝箱的值,可以在運(yùn)行時(shí)安全地成為未裝箱的值。實(shí)質(zhì)上,由于出色的語言實(shí)現(xiàn)者,您的盒子有時(shí)是免費(fèi)的。


查看完整回答
反對 回復(fù) 2019-08-12
?
皈依舞

TA貢獻(xiàn)1851條經(jīng)驗(yàn) 獲得超3個(gè)贊

裝箱和拆箱是將原始值轉(zhuǎn)換為面向?qū)ο蟮陌b類(裝箱),或?qū)⒅祻拿嫦驅(qū)ο蟮陌b類轉(zhuǎn)換回原始值(拆箱)的過程。

例如,在java中,如果要將int值存儲為a ,則可能需要將值轉(zhuǎn)換為Integer(裝箱),Collection因?yàn)榛荒艽鎯υ?code>Collection僅對象中。但是當(dāng)你想要把它從它中取出時(shí)Collection你可能想要得到的價(jià)值int而不是Integer那樣你就可以取消它。

拳擊和拆箱本身并不,但這是一個(gè)權(quán)衡。根據(jù)語言實(shí)現(xiàn),它可能比僅使用基元更慢且占用更多內(nèi)存。但是,它還可以允許您使用更高級別的數(shù)據(jù)結(jié)構(gòu),并在代碼中實(shí)現(xiàn)更大的靈活性。

目前,它最常見于Java(和其他語言)“autoboxing / autounboxing”功能的上下文中。這是一個(gè)以java為中心的autoboxing解釋。


查看完整回答
反對 回復(fù) 2019-08-12
  • 3 回答
  • 0 關(guān)注
  • 469 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號