※ 引述《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 時就釋放)
只能說這兩種語言的出發點不同,並非所有物件導向語言都崇尚
集中的「垃圾車管理」,不過到後來還是會有類似的東西,
只是實作方向不同...