內(nèi)存管理問題

內(nèi)存管理是編程過程中的一個(gè)經(jīng)典問題,早期在 C 語言時(shí)代,幾乎都靠 malloc/free 手動(dòng)管理內(nèi)存。隨著各個(gè)平臺的發(fā)展,到現(xiàn)在被廣泛采用的主要有兩個(gè)方法:

  • 引用計(jì)數(shù) (ARC,Automatic Reference Counting)

  • GC (Garbage Collection)

管理方法 ARC/GC

因?yàn)?Java 的流行,GC 被廣泛的認(rèn)知。GC 簡單的說是定期查找不再使用的對象,釋放對象占用的內(nèi)存。

基于 GC,申請的對象不需要手動(dòng)釋放,只需要確認(rèn)對象在不再需要時(shí),不再被其他對象引用。

引用計(jì)數(shù)早期主要用于底層系統(tǒng),比如文件系統(tǒng)的 inode 管理,后來 C++ 的 boost 庫實(shí)現(xiàn)了一套完整的 ARC,目前流行的系統(tǒng)還有 Objective C 也是采用的 ARC。

ARC 的特點(diǎn)是,一個(gè)對象被引用時(shí),引用計(jì)數(shù)增加 1,引用對象釋放時(shí),引用計(jì)數(shù)減少 1,如果引用計(jì)數(shù)為 0,釋放對象。

比較

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式