作者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://webptt.com/cn.aspx?n=bbs/MacDev/M.1650610483.A.C0E.html
1F:推 Blueshiva: 这回文...十年磨一剑吗?111.241.187.197 04/24 11:45
2F:→ tomhawkreal: 毕竟obj-c还是现役 并未被完全淘汰 36.226.147.160 04/25 02:02
3F:→ roses: 你还在用没有ARC的obj-c写code? 60.250.28.253 04/25 09:18
4F:→ tomhawkreal: 抱歉 偶而会在github看到早期的objc220.137.242.191 04/26 15:43
5F:→ tomhawkreal: 理解一下而已220.137.242.191 04/26 15:43
6F:推 Blueshiva: 其实有没有ARC差别不是很大啊 XD 111.241.152.61 04/27 21:32
7F:→ DarkNT: Swift 跟 Objective-C 应该也是用一样机制 106.104.120.33 05/03 11:55