作者tomhawkreal (阿湯)
看板MacDev
標題Re: [問題] 記憶體管理機制為何不跟java一樣
時間Fri Apr 22 14:54:41 2022
※ 引述《wfgh (lyle)》之銘言:
: 為何objective-c的記憶體管理機制不跟java一樣
: java只要該物件沒有被reference到就符合garbage collection的絛件
: 而objective-c還要release
: 這兩者各有什麼優缺點嗎?
: 或者objective-c這樣設計是為了什麼目的嗎(例如更適合來做哪方面的寫作)
拿垃圾車當比喻,java容易遇到的問題是:
「萬一垃圾車來晚了怎麼辦」
那當然就爆啦,這種事在java經常發生
程式裡面產生一堆大型class,被垃圾淹死才知道痛
目前obj-c和swift都已實行 "automatic reference count" (ARC)
所以也不需要自己手動release (監控ref count == 0 時就釋放)
只能說這兩種語言的出發點不同,並非所有物件導向語言都崇尚
集中的「垃圾車管理」,不過到後來還是會有類似的東西,
只是實作方向不同...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.147.160 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/MacDev/M.1650610483.A.C0E.html
推 Blueshiva: 這回文...十年磨一劍嗎?111.241.187.197 04/24 11:45
→ tomhawkreal: 畢竟obj-c還是現役 並未被完全淘汰 36.226.147.160 04/25 02:02
→ roses: 你還在用沒有ARC的obj-c寫code? 60.250.28.253 04/25 09:18
→ tomhawkreal: 抱歉 偶而會在github看到早期的objc220.137.242.191 04/26 15:43
→ tomhawkreal: 理解一下而已220.137.242.191 04/26 15:43
推 Blueshiva: 其實有沒有ARC差別不是很大啊 XD 111.241.152.61 04/27 21:32
→ DarkNT: Swift 跟 Objective-C 應該也是用一樣機制 106.104.120.33 05/03 11:55