17-String與Array

關(guān)于String的思考

  • 1個(gè)String變量占用多少內(nèi)存?

  • 下面2個(gè)String變量,底層存儲(chǔ)有什么不同?

var str1 = "0123456789"
var str2 = "0123456789ABCDEF"
  • 如果對(duì)String進(jìn)行拼接操作, String變量的存儲(chǔ)會(huì)發(fā)生什么變化?
str1.append("ABCDE")
str1.append("F") 低 

str2.append("G")                                

ASCII碼表:https://www.ascii-code.com/

image.png

匯編分析string本質(zhì):

  • 查看str1

    • 馬哥小工具M(jìn)em可以查看內(nèi)存地址。log之后是下圖的

    • 進(jìn)入?yún)R編斷點(diǎn)。log可以對(duì)照ASCII表進(jìn)行查看 0-9 a-z對(duì)應(yīng)ASCII

    • 前8個(gè)存儲(chǔ)字符,后面存儲(chǔ)長(zhǎng)度。 (如果超過(guò)15個(gè),怎么存儲(chǔ))

image.png

image.png
  • 查看str2

會(huì)進(jìn)行長(zhǎng)度比較。

image.png
image.png

從編碼到啟動(dòng)APP

image.png

生成的Mach-O文件,通過(guò)MachOView 軟件查看 放在Section64( _TEXT,_cstring)

dyld_stub_binder

  • 符號(hào)的延遲綁定通過(guò)dyld_stub_binder完成

  • jmpq *0xb31(%rip)格式的匯編指令

占用6個(gè)字節(jié)

image.png
  • 字符串拼接
image.png
image.png

關(guān)于Array的思考

  public struct Array<Element>
  var arr = [1, 2, 3, 4]
  • 1個(gè)Array變量占用多少內(nèi)存?

  • 數(shù)組中的數(shù)據(jù)存放在哪里?

image.png

8個(gè)字節(jié),存放的是一個(gè)地址值。堆空間。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 關(guān)于String的思考 1個(gè)String變量占用多少內(nèi)存? 下面2個(gè)String變量,底層存儲(chǔ)有什么不同? var...
    5e4c664cb3ba閱讀 409評(píng)論 0 0
  • 關(guān)于String的思考 1個(gè)String變量占用多少內(nèi)存? 下面2個(gè)String變量,底層存儲(chǔ)有什么不同? 如果對(duì)...
    Stago閱讀 290評(píng)論 0 1
  • 首先定義一個(gè)字符串,如下所示: 易知str1字符串在內(nèi)存中占用16個(gè)字節(jié); 下斷點(diǎn),進(jìn)入?yún)R編代碼: movq %r...
    YanZi_33閱讀 554評(píng)論 0 0
  • got 是什么 iOS 開(kāi)發(fā)中,動(dòng)態(tài)庫(kù)是個(gè)繞不開(kāi)的話(huà)題,系統(tǒng)庫(kù)基本上是動(dòng)態(tài)庫(kù)。它的一大優(yōu)勢(shì)是節(jié)約內(nèi)存,可讓多個(gè)程序...
    微微笑的蝸牛閱讀 2,024評(píng)論 7 10
  • 前文講解了dyld加載Mach-O的用戶(hù)態(tài)過(guò)程,大家都知道Mach-O代表的是蘋(píng)果系統(tǒng)的可執(zhí)行文件,那你們了解Ma...
    佛系編程閱讀 2,261評(píng)論 0 2

友情鏈接更多精彩內(nèi)容