2022年iOS高級(jí)工程師面試題

PS:面試題內(nèi)容來自群友收集分享,非本人D唷J当巍上炎!

真實(shí)面試題

load方法調(diào)用順序、調(diào)用superLoad會(huì)走到誰蕊程?

總結(jié):

  • 1.父類先于子類調(diào)用;
  • 2.類先于分類調(diào)用;
    1. load調(diào)用時(shí)機(jī)比較早,當(dāng)load調(diào)用時(shí),其他類可能還沒加載完成,運(yùn)行環(huán)境不安全;
  • 4.load方法是線程安全的椒袍,它使用了鎖,我們應(yīng)該避免線程阻塞在load方法;
  • 5.load是根據(jù)函數(shù)地址直接調(diào)用的,與類在Compile Sources中的順序一致藻茂;
  • 6.load方法通常用來進(jìn)行Method Swizzle;

PS: 調(diào)用superLoad, 走消息轉(zhuǎn)發(fā)流程

KVO 沒有setter

  • _NSSetValueAndNotify

atomic

  • 非線程安全驹暑,僅能保證進(jìn)入set、get方法是線程安全的

Barried和group

  • 柵欄和組辨赐,
  • 柵欄只能阻攔同步任務(wù)
  • group可以處理異步任務(wù)

target project workspace scheme configuration

  • (workspace -> project -> target -> scheme -> configuration) 包含關(guān)系

autoreleasePool

繪制完成后下次runloop還繪制么

  • 是否繪制取決于UIKit是否認(rèn)為他是dirty

二叉樹深度

  • 遞歸优俘,如果有,則深度+1 取左右子樹最大深度

  • 自旋鎖忙等待掀序, 優(yōu)先級(jí)反轉(zhuǎn) 高優(yōu)先級(jí)占用時(shí)間片帆焕,低優(yōu)先級(jí)任務(wù)無法搶占時(shí)間片,任務(wù)完不成不恭,不釋放資源
  • 互斥鎖
  • 遞歸鎖 統(tǒng)一線程可以重復(fù)獲取遞歸鎖
  • synchronized 性能最差 是遞歸鎖
    • 找到obj對(duì)應(yīng)的syncData結(jié)構(gòu)進(jìn)行加解鎖

設(shè)置一個(gè)單寫多讀的數(shù)據(jù)庫(kù)叶雹,要考慮什么(setter如何加鎖,同時(shí)getter如何高效)

  • 并發(fā)隊(duì)列
  • 寫異步dispatch_barried_async
  • 讀同步并發(fā)隊(duì)列

App卡頓檢測(cè)

  • runloop監(jiān)測(cè)beforeSource -》 beforeWaitting 的間隔
    • 每次runloop CallBack的時(shí)候信號(hào)量釋放换吧,while循環(huán)里wait折晦,使用的是信號(hào)量的超時(shí)機(jī)制(如果等待的時(shí)間大于設(shè)置的時(shí)間則直接執(zhí)行, 超時(shí)信號(hào)量則返回的是非0
  • afterWaitting之后

如何設(shè)計(jì)一個(gè)圖片異步加載框架

  • api簡(jiǎn)潔易用
  • 任務(wù)優(yōu)先級(jí)
  • 下載器
  • 取消之前任務(wù)
  • 解碼
  • 緩存策略
  • 緩存過期策略LRU(雙向鏈表配合hash表式散,key為URL value為node節(jié)點(diǎn))

IM如何解決啟動(dòng)消息堆積問題

  • 緩沖池緩存 空閑時(shí)處理筋遭,或者間隔多久處理一次
  • 合并處理

數(shù)據(jù)庫(kù)事務(wù)的好處

  • 原子性 (要么全執(zhí)行 要么全不執(zhí)行)
  • 隔離性(各個(gè)事務(wù)是隔離的,互不影響)
  • 一致性(事務(wù)完成時(shí)暴拄,數(shù)據(jù)保持一致狀態(tài))
  • 持久性 (事務(wù)一旦提交漓滔,對(duì)數(shù)據(jù)的改變是永久性的)

瀏覽器輸入網(wǎng)址后的過程

  • dns解析,
  • 三次握手后 https交換密鑰乖篷,
  • 然后正常請(qǐng)求

中間人攻擊

swift可選類型如何實(shí)現(xiàn)响驴?

  • wrapper

http2.1 (多路復(fù)用)

HTTP滑動(dòng)窗口、流量控制

  • 報(bào)文中有窗口字段撕蔼,窗口為0時(shí)發(fā)送方停止發(fā)送數(shù)據(jù)
  • 防止接收方緩存區(qū)快滿了豁鲤,發(fā)送方還在發(fā)送數(shù)據(jù)
  • 發(fā)送方的發(fā)送窗口大小不能超過接收方的給出的窗口大小

Isa

  • 實(shí)例對(duì)象 isa指向類,
  • 類對(duì)象的isa指向 metaclass

單鏈表翻轉(zhuǎn)

  • 遞歸

    def reverseList(self, head: ListNode) -> ListNode:
        # 1. 遞歸終止條件
        if head is None or head.next is None:
            return head
        
        p = self.reverseList(head.next)
        head.next.next = head
        head.next = None
    
        return p
    

性能檢測(cè)

  • CPU
  • FPS
  • 卡頓檢測(cè)(利用runloop 和 信號(hào)量超時(shí)機(jī)制)

SDWeb 然后一個(gè)帶圖片的列表鲸沮,用sd展示琳骡,譬如第二和第四是同一個(gè)鏈接,這種情況下它的策略是什么

  • 查找隊(duì)列任務(wù)讼溺,并把回調(diào)放在同一張圖片operation的回調(diào)中
  • download operation存儲(chǔ)著對(duì)同一張圖片的回調(diào)block

tcp擁塞控制楣号,

  • 慢開始
  • 擁塞避免
  • 快重傳
  • 快恢復(fù)

加密

  • MD5
  • SHA256
  • Hash
  • AES

gcd里的group,enter,leave炫狱,notify作用藻懒,

  • enter 開始執(zhí)行任務(wù)了
  • leave 我執(zhí)行完成了
  • notify 是獲取當(dāng)前組里的任務(wù)都完成了,不過要注意notify的位置

方法緩存cache怎么查找的

  • 快查
  • 慢查
  • 填充緩存

MachO的方法列表排序

  • 類加載的時(shí)候视译,先是把類中的方法排序然后加到類的方法數(shù)組后面嬉荆,然后到分類時(shí)也是先把分類方法排序,再加到類方法數(shù)組的前面酷含。
  • 分類中的方法地址比原始類中的方法地址要小鄙早,這樣便能能保證方法列表是有序的,所以能用二分查找

weak的原理第美,

  • weak_table_t

項(xiàng)目結(jié)構(gòu)蝶锋,組件化分層

  • 地基層(第三方依賴以及工程的基礎(chǔ)庫(kù))
  • 基礎(chǔ)通用組件(對(duì)第三方庫(kù)的封裝以及異常上報(bào),推送服務(wù)什往、支付)
  • 基礎(chǔ)UI組件
  • 基礎(chǔ)功能組件(登錄注冊(cè)這種不依賴業(yè)務(wù)的組件)
  • 業(yè)務(wù)組件
    • 更小的業(yè)務(wù)模塊
  • 殼工程

查找沖突怎么實(shí)現(xiàn)的, 線上日志 崩潰

埋點(diǎn)這些

  • 無痕埋點(diǎn) aop

swift struct 和 class 區(qū)別

  • 默認(rèn)創(chuàng)建構(gòu)造器慌闭,
  • 值類型和引用類型别威,
  • 繼承,
  • class堆驴剔,
  • struct棧省古,
  • 線程安全
  • struct更輕量

mutating 關(guān)鍵字

  • @inout 傳遞引用修改

WebView優(yōu)化

  • 包緩存,
  • 空白webview常駐緩存丧失,
  • 使用wk

swift 派發(fā)機(jī)制

  • 函數(shù)表派發(fā)豺妓,
  • 動(dòng)態(tài)派發(fā),
  • 直接派發(fā)

optinoal怎么實(shí)現(xiàn)的

  • (struct wapper)

protocol 怎么實(shí)現(xiàn)optional

  • (@objc)

swift訪問權(quán)限修飾符

  • private
  • public
  • fileprivate
  • protect

上傳1個(gè)G的大文件布讹,怎么設(shè)計(jì)琳拭,上傳的時(shí)候讀取到內(nèi)存,一定是一次性讀完嗎

  • 分段讀取描验,NSFileHandler

微信通話白嘁,讓你設(shè)計(jì),用TCP 還是 UDP膘流,為什么

  • udp絮缅, 視頻通話丟包可以接受,

UDP發(fā)送1呼股、2耕魄、3、4彭谁、5吸奴,5 個(gè)數(shù)據(jù)包,怎么保證它的順序

  • 協(xié)議中添加包的編號(hào),接受包的時(shí)候排序

冷啟動(dòng)runtime的初始化調(diào)用哪些方法

編譯器運(yùn)行原理

  • 詞法分析奄抽,
  • 語法分析蔼两,
  • 語義分析,
  • 中間代碼生成逞度,
  • 中間代碼優(yōu)化额划,
  • 目標(biāo)代碼生成,
  • 符號(hào)表管理档泽,
  • 出錯(cuò)管理

runloop應(yīng)用場(chǎng)景俊戳,

  • 監(jiān)控卡頓,
  • 線程惫菽洌活抑胎,
  • timer滑動(dòng)停止

AOP,函數(shù)式等等區(qū)別渐北,

runtime應(yīng)用

  • 動(dòng)態(tài)添加屬性和方法阿逃,
  • 方法交換,
  • 獲取和修改私有屬性和方法
  • 字典轉(zhuǎn)模型

怎么hook+load

  • 制作動(dòng)態(tài)庫(kù)
  • 優(yōu)先編譯

內(nèi)存管理機(jī)制

  • ARC
  • MRC

內(nèi)存分區(qū)以及堆區(qū)棧區(qū)區(qū)別赃蛛,對(duì)象存哪里

  • 指針在棧區(qū) 325
  • 對(duì)象在堆區(qū)
  • 堆恃锉、棧、全局呕臂、代碼破托、數(shù)據(jù)

block值捕獲,

從點(diǎn)擊應(yīng)用圖標(biāo)開始的app啟動(dòng)流程(系統(tǒng)為程序啟動(dòng)做好準(zhǔn)備歧蒋,

Runloop作用以及如何監(jiān)測(cè)卡頓

  • (beforeSource -> waitting 大于閾值土砂, 子線程監(jiān)聽,dump出調(diào)用棧)

KVO原理以及自己如何實(shí)現(xiàn)

自動(dòng)釋放池相關(guān)谜洽,譬如何時(shí)釋放萝映、實(shí)現(xiàn)原理、@autoreleasepool加for循環(huán)情況下何時(shí)釋放

深copy與淺copy

  • (淺拷貝 拷貝指針)

KVC原理 之后是Key與keypath區(qū)別褥琐,然后定義一個(gè)屬性_name 然后kvc通過setValueforkey锌俱,這時(shí)賦值是用key賦值還是keypath

  • keyPath 可以通過路徑查找
  • 都可以

消息發(fā)送原理 然后消息轉(zhuǎn)發(fā)為啥要分三個(gè)階段,蘋果這樣設(shè)計(jì)的意義在哪兒(字節(jié))

  • 第一階段為動(dòng)態(tài)添加方法
  • 第二階段為替換接收方
  • 第三階段為完全消息轉(zhuǎn)發(fā)(有invocation對(duì)象敌呈,可以實(shí)現(xiàn)多次轉(zhuǎn)發(fā)贸宏,轉(zhuǎn)發(fā)給多個(gè)對(duì)象)

輸入法要加載大量表情這時(shí)引起內(nèi)存激增,這種情況如何優(yōu)化

  • 如圖大 imageIO進(jìn)行縮放
  • 按需加載
  • 如不需要常駐內(nèi)存磕洪,去掉內(nèi)存緩存
  • 如本地圖片吭练,使用autoreleasepool包裹加載

事件響應(yīng)鏈如何尋找fitview(有次回答了事件響應(yīng)鏈的hittest、pointinside方法尋找以及后邊touchebegan之類的方法判定后析显,又這樣問我有些懵逼)(字節(jié)鲫咽、小紅書、攜程都有問)

tcp/udp區(qū)別

  • tcp 可靠、一對(duì)一分尸、流量控制和擁塞控制锦聊、面向連接、首部開銷大
  • udp 不可靠箩绍,可一對(duì)一孔庭、一對(duì)多、多對(duì)一材蛛、多對(duì)多圆到、無流量控制和擁塞控制、首部開銷小

strong 卑吭、weak芽淡、copy 、assign 豆赏、retain 挣菲、unsafe_unretained 與autoreleasing

  • autoreleasing當(dāng)前autoreleasepool作用域內(nèi)有效,出去即銷毀
  • 對(duì)不可變對(duì)象執(zhí)行copy操作掷邦,是指針復(fù)制己单,執(zhí)行mutableCopy操作是內(nèi)容復(fù)制。
  • 對(duì)可變對(duì)象執(zhí)行copy操作和mutableCopy操作都是內(nèi)容復(fù)制耙饰。

https原理

  • Client Hello: Random1、SSL version纹份、 加密套件
  • Server Hello:Random2苟跪、server選擇的加密套件
  • Certificate:server讓客戶端校驗(yàn)證書
  • Certificate Verify:client通過證書加密Random3
  • Client Key Exchange: server和client用同樣的算法加密 random1、2蔓涧、3即為通訊秘鑰

websocket原理

  • 利用http協(xié)議握手
  • 利用tcp來傳輸數(shù)據(jù)件已,請(qǐng)求頭小

runloop與autoreleasepool關(guān)系

  • 線程與runloop一一對(duì)應(yīng)
  • autoreleasepool依賴runloop來工作

weak實(shí)現(xiàn)原理

  • 調(diào)用 objc_release
  • 因?yàn)閷?duì)象的引用計(jì)數(shù)為0,所以執(zhí)行 dealloc
  • 在 dealloc 中元暴,調(diào)用了 _objc_rootDealloc 函數(shù)
  • 在 _objc_rootDealloc 中篷扩,調(diào)用了 object_dispose 函數(shù)
  • 調(diào)用 objc_destructInstance
  • 最后調(diào)用 objc_clear_deallocating,詳細(xì)過程如下:
    • a. 從 weak 表中獲取廢棄對(duì)象的地址為鍵值的記錄
    • b. 將包含在記錄中的所有附有 weak 修飾符變量的地址,賦值為 nil
    • c. 將 weak 表中該記錄刪除
    • d. 從引用計(jì)數(shù)表中刪除廢棄對(duì)象的地址為鍵值的記錄

Swift與OC區(qū)別 以及swift安全性體現(xiàn)

  • 文件個(gè)數(shù)和后綴不同
  • 不需要main函數(shù)
  • 會(huì)自動(dòng)推導(dǎo)類型
  • bool類型明確
  • 可以不繼承任何類
  • final修飾不能被其他類繼承
  • guard
  • inout

逃逸閉包與非逃逸閉包

  • 閉包調(diào)用時(shí)的時(shí)機(jī)劃分為逃逸閉包和非逃逸閉包

gcd如何取消線程

  • 線程是由系統(tǒng)管理的茉盏,不需要手動(dòng)管理
  • 如果問的是取消任務(wù)的話鉴未,可以cancel掉未執(zhí)行的任務(wù)

app保活

  • backgroundTask
  • 持續(xù)定位
  • 播放無聲音頻
  • 后臺(tái)下載資源
  • BGTaskScheduler

深拷貝和淺拷貝

  • 對(duì)數(shù)組等集合類app進(jìn)行深拷貝鸠姨,其內(nèi)容不變
  • 因?yàn)閿?shù)組里存的只是內(nèi)容的指針铜秆,并非本體

啟動(dòng)優(yōu)化

內(nèi)存管理,關(guān)鍵字 weak釋放

category加載 消息機(jī)制(方法查找)

setNeedLayout和layoutIfNeed

UIView性能問題(卡頓掉幀)

  • 離屏渲染
  • 主線程執(zhí)行耗時(shí)操作
  • 大圖優(yōu)化
  • tableview優(yōu)化
  • 圖層過于復(fù)雜

SD 解碼

  • 已經(jīng)解碼過
  • 動(dòng)圖不解碼
  • 矢量圖不解碼

組件化分層

看過哪些源碼

音視頻遇到過哪些問題

im丟消息怎么處理

多線程的應(yīng)用

YYWebImage和SD 異同點(diǎn)

  • 相同點(diǎn)
    • category擴(kuò)展
    • 緩存&解碼
  • 不同
    • YY URLConnect
    • sd URLSession
    • 解碼(yy可控制讶迁,sd不能控制)

騰訊1面

Block

  • StackBlock
  • GlobalBlock
    • 不會(huì)訪問任何auto變量
  • MallocBlock

kvc與kvo

+load 和 +initialize(有什么注意)

  • load由runtime通過函數(shù)指針直接調(diào)用连茧,無需調(diào)用super
  • initialize有msgsend調(diào)用,存在方法查找,子類不實(shí)現(xiàn)啸驯,父類可能會(huì)調(diào)用多次

Catagory 和 extension

commbine

  • 響應(yīng)式
    • publisher客扎,
    • subscripter,
    • subject罚斗,
    • operator

method swizzling

  • 注意事項(xiàng)
    • 1.hook次數(shù)徙鱼,
    • 2.hook父類導(dǎo)致調(diào)用順序錯(cuò)亂
    • 3.很難追查問題

application生命周期

  1. 啟動(dòng)程序
    • willFinishLaunchingWithOptions
    • didFinishLaunchingWithOptions
    • applicationDidBecomeActive
  2. 按下home鍵
    • applicationWillResignActive:
    • applicationDidEnterBackground:
  3. app在后臺(tái)狀態(tài),點(diǎn)擊app打開
    • applicationWillEnterForeground:
    • applicationDidBecomeActive:

騰訊二面

工作經(jīng)歷

編譯優(yōu)化

多繼承

  • oc/swift不支持多繼承
  • 使用協(xié)議模擬

ARC MRC

weak 線程安全惰聂?

  • 線程安全疆偿,每次獲取weak指針都會(huì)通過objc_loadWeakRetained這個(gè)函數(shù)
  • 判斷其是否為tagged
  • 加鎖并取值

浮點(diǎn)數(shù)相等

  • NSDecimalNumber,
  • 或在已定誤差范圍內(nèi)認(rèn)為其相等

性能監(jiān)測(cè)

  • CPU
  • 內(nèi)存 使用量or泄漏
  • FPS
  • 卡頓檢測(cè)
  • 網(wǎng)絡(luò)
  • crash檢測(cè)
  • 耗電量監(jiān)控
  • 啟動(dòng)時(shí)間

斷點(diǎn)

  • 符號(hào)斷點(diǎn)
  • 條件斷點(diǎn)

離屏渲染

TCP UDP

頭條1面

sona優(yōu)化

  • 代碼過于復(fù)雜
  • 函數(shù)代碼行數(shù)過多
  • switch case條件過多
  • if else嵌套嚴(yán)重
  • C參數(shù)未 release

Flutter與Lua

  • 異同點(diǎn)
  • Flutter
    • 三棵樹
      • Widget 存儲(chǔ)渲染信息
      • Element 元素樹,渲染實(shí)體
      • RenderObject 管理布局和繪制

路由方案及事件總線

  • protocol
  • URL

包體積優(yōu)化

  • 無用圖片搓幌、類杆故、資源等,壓縮圖片
  • 減少動(dòng)態(tài)庫(kù)數(shù)量
  • 減少無用依賴
  • 去除無用架構(gòu)
  • xcode默認(rèn)配置的編譯參數(shù)

App啟動(dòng)過程

runloop及應(yīng)用

  • 卡頓檢測(cè)

搜狐一面

sd用了哪些鎖

  • synchronized

鎖的性能排行

  • synchronized 最差
  • os_unfair_lock 最好

synchronized原理

  • objc_sync_enter
  • objc_sync_exit
  • 鎖對(duì)象只能是同一個(gè)
  • 可重入型互斥鎖

afn線程备瘸睿活

  • afn各版本的區(qū)別
    • 2.0有線程贝︻酰活,基于URLConnection拐揭,回調(diào)只能回調(diào)給原runloop
    • 3.0不需要 URLSession可以指定回調(diào)隊(duì)列撤蟆,NSOperationQueue設(shè)定max為1,讓回調(diào)串行執(zhí)行

偽代碼設(shè)計(jì)單寫多讀

runloop source0和1分別都對(duì)應(yīng)什么事件

  • source 1 系統(tǒng)級(jí)別的事件
  • source 0 是程序員處理的任務(wù)

點(diǎn)擊btn是如何事件傳遞喚醒runloop

  • 包裝event -> source1 -> mach_port喚醒runloop -> source0

runloop和線程的關(guān)系

  • 關(guān)系存儲(chǔ)在全局字典里 線程key runloop是value
  • 一一對(duì)應(yīng)

runloop有多少個(gè)mode 多少個(gè)status堂污、

  • kCFRunLoopBeforeTimers
  • kCFRunLoopBeforeSources
  • kCFRunLoopBeforeWaiting
  • kCFRunLoopAfterWaiting *
  • kCFRunLoopExit

@synthesize 和 @dynamic

  • 如果沒有手動(dòng)實(shí)現(xiàn)將為屬性自動(dòng)生成getter和setter方法
  • dynamic 告訴編譯器不要自動(dòng)生成setter和getter

NSString類型為什么要用copy修飾

  • 對(duì)NSString來說沒影響
  • 對(duì)NSMutableString來說有家肯,防止被修改

多線程實(shí)現(xiàn)方式以及優(yōu)缺點(diǎn)(gcd對(duì)比NSOperation)

  • GCD是C語言, 所以效率更高盟猖, operation獲得更好的依賴讨衣、優(yōu)先級(jí)、kvo等優(yōu)點(diǎn)
  • operation 是對(duì)GCD的高層次抽象
  • 依賴關(guān)系式镐,operation可以設(shè)置依賴反镇,gcd不行,可以用其他方法
  • operation可以kvo

NSTimer循環(huán)引用

  • 使用block的形式
  • 使用NSProxy
  • iOS13+新API

block類型 以及循環(huán)引用

  • stackBlock
  • mallocBlock
  • globalBlock

如何優(yōu)化啟動(dòng)時(shí)長(zhǎng)

  • 管理啟動(dòng)項(xiàng)
  • load方法清理
  • 減少動(dòng)態(tài)庫(kù)
  • 減少類的數(shù)量

extension和category的區(qū)別

  • extension在編譯期間娘汞, 可新增成員變量歹茶,是類的一部分,無法為系統(tǒng)類添加extension
  • category在運(yùn)行期間你弦,不能添加成員變量

autoreleasepool分別在哪些情況下會(huì)釋放

  • runloop即將進(jìn)入休眠時(shí)
  • 出pool作用域
  • 線程被釋放

autoreleasepool底層原理惊豺,

  • 雙向鏈表
  • runloop enter的時(shí)候會(huì)push, exit會(huì)pop
  • runloop 在即將休眠時(shí)先pop 然后再push

weak實(shí)現(xiàn)原理

解壓zip遇到過哪些問題

  • 中文文件名亂碼

webview加載優(yōu)化

autorelease 和 runloop的關(guān)系

  • 注冊(cè)了entry來push 優(yōu)先級(jí)最高鳖目,優(yōu)先執(zhí)行
  • 監(jiān)聽beforeWaiting來pop和push 優(yōu)先級(jí)最低扮叨,保證最后執(zhí)行

webview橋接怎么做的

說說Swift為什么將String,Array领迈,Dictionary設(shè)計(jì)成值類型

  • 值類型相比引用類型彻磁,最大的優(yōu)勢(shì)在于內(nèi)存使用的高效
  • 線程安全考慮

MachO結(jié)構(gòu)

  • Header(包含文件類型碍沐、目標(biāo)架構(gòu)類型等)
  • Load Commands(文件在虛擬內(nèi)存中的邏輯結(jié)構(gòu)、布局)
  • segment(segment約定使用雙下劃線加大寫字母衷蜓,例如__TEXT)
    • section(section約定使用雙下劃線加小寫字母,例如:__text)

MachO Segment

  • __TEXT

    包含代碼累提,它被以只讀和可執(zhí)行的方式映射,即進(jìn)程可以執(zhí)行代碼磁浇,但不能修改代碼斋陪。代碼也不能修改自身,因此置吓,page永遠(yuǎn)不會(huì)dirty无虚。

    • __text
      section包含編譯好的機(jī)器碼。
    • __stubs__stub_helper
      section用于動(dòng)態(tài)鏈接器(dyld)衍锚,這樣鏈接動(dòng)態(tài)鏈接代碼時(shí)友题,可以延遲鏈接
    • __const其是常量;
    • __cstring
      包含可執(zhí)行文件中字面量字符串戴质。
  • __DATA
    段是可讀可寫的度宦,但不能執(zhí)行,包含可被更新的值告匠。

    • __nl_symbol_ptr是非懶加載符號(hào)指針戈抄,在可執(zhí)行文件加載時(shí)就已經(jīng)加載了
    • __la_symbol_ptr是懶加載符號(hào)指針,用于調(diào)用可執(zhí)行文件中未定義的符號(hào)
    • __const:包含一些需要重定向的常量數(shù)據(jù)后专。如char * const p = "foo";p指針指向的數(shù)據(jù)不是常量划鸽。
    • __bss:包含未初始化的靜態(tài)變量。如static int a戚哎。
    • __common:包含未初始化的外部全局變量漾稀。如函數(shù)外的int a
    • __dyld:是占位section建瘫,用于動(dòng)態(tài)鏈接器。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尸折,一起剝皮案震驚了整個(gè)濱河市啰脚,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌实夹,老刑警劉巖橄浓,帶你破解...
    沈念sama閱讀 219,589評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異亮航,居然都是意外死亡荸实,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評(píng)論 3 396
  • 文/潘曉璐 我一進(jìn)店門缴淋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來准给,“玉大人泄朴,你說我怎么就攤上這事÷兜” “怎么了祖灰?”我有些...
    開封第一講書人閱讀 165,933評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)畔规。 經(jīng)常有香客問我局扶,道長(zhǎng),這世上最難降的妖魔是什么叁扫? 我笑而不...
    開封第一講書人閱讀 58,976評(píng)論 1 295
  • 正文 為了忘掉前任三妈,我火速辦了婚禮,結(jié)果婚禮上莫绣,老公的妹妹穿的比我還像新娘畴蒲。我一直安慰自己,他們只是感情好兔综,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評(píng)論 6 393
  • 文/花漫 我一把揭開白布饿凛。 她就那樣靜靜地躺著,像睡著了一般软驰。 火紅的嫁衣襯著肌膚如雪涧窒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,775評(píng)論 1 307
  • 那天锭亏,我揣著相機(jī)與錄音纠吴,去河邊找鬼。 笑死慧瘤,一個(gè)胖子當(dāng)著我的面吹牛戴已,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播锅减,決...
    沈念sama閱讀 40,474評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼糖儡,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了怔匣?” 一聲冷哼從身側(cè)響起握联,我...
    開封第一講書人閱讀 39,359評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎每瞒,沒想到半個(gè)月后金闽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,854評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡剿骨,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評(píng)論 3 338
  • 正文 我和宋清朗相戀三年代芜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片浓利。...
    茶點(diǎn)故事閱讀 40,146評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡挤庇,死狀恐怖钞速,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情罚随,我是刑警寧澤玉工,帶...
    沈念sama閱讀 35,826評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站淘菩,受9級(jí)特大地震影響遵班,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜潮改,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評(píng)論 3 331
  • 文/蒙蒙 一狭郑、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧汇在,春花似錦翰萨、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至阿蝶,卻和暖如春雳锋,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背羡洁。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工玷过, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人筑煮。 一個(gè)月前我還...
    沈念sama閱讀 48,420評(píng)論 3 373
  • 正文 我出身青樓辛蚊,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親真仲。 傳聞我的和親對(duì)象是個(gè)殘疾皇子袋马,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評(píng)論 2 356

推薦閱讀更多精彩內(nèi)容