objective c, c, c++, java

Object C vs C vs C++ vs Java vs C#



Object C dynamic binding, runtime check the param types, if param need int you pass a float, only runtime know the error

(Object C implement the object method call though message mechanism, check Object C wikipedia)


C,C++,Java,C#  no-dynamic binding, compile time check

(But in java, you could pass a Object class, and do is instance of () check to work around the dynamic)




Object C even provide forward, that method not exist in one class, it can forward to its subclass

(so there is no compile time check, its runtime)




Object C block == C function pointer

java runnable class’s runnable method is similar 




Object C, C, C++ has head file

java, C# has no head file

(because every file is class, the public method and properties are just the heads)




Object C has no name space

So every file name should has a prefix, it’s stupid

java, C#, C++ has




Object C in IOS has no GC (macOS has)

Object C  retain could count the reference of object.

inside release, it only free memory when object reference count still > 1

Because Object C has no GC, when give a pointer to new object memory need free origin and assign value two steps, so there is atomic (synchronize self) / nonatomic (no thread safety, may got null pointer in two threads race condition)  

java, C# has GC (only assign value one step, always atomaic)




How Object C implement the  java inner class??

(inner class could access the outer class properties)


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值