c 是动态语言吗,为什么说 Object-C 是动态语言?

为什么说 Object-C 是动态语言?

前言

为什么写这篇文章

干了有一段时间的iOS了,今天看公众号推送了一篇关于面试题的文章,很多基础问题都不知道怎么回答,看网上的答案都不怎么通俗,太书面了,我决定以口头表达的方式整理这些回答。

参考链接,为什么说 Object-C 是动态语言?

什么是动态语言?

动态语言就是,程序在运行时可以改变,可以加新的(函数),可以替换和删除旧的。

动态语言:(Dynamic programming Language -动态语言或动态编程语言

Dynamically Typed Language(动态类型语言)所谓的动态类型语言,就是类型的检查是在运行时做的。

其实没有一个动态语言的标准,只是相对静态的而言,只要是在运行时可以修改的,都可以理解为动态语言。

回答

Object-C 将很多事放到了运行时来处理。为了实现这样的工作,Obejct-C 提供了 Objc Runtime 机制来动态创建类和对象,进行消息发送和转发。

哪些事

动态类型 - 运行时再决定对象的类型(id类型就是最直接的体现)

动态绑定 - 对象类型确定后才将属性和消息(函数)与对象绑定。

动态加载 - 动态加载所需资源,比如@2x图片。

这里已经可以回答本文的问题了。但是这并没有什么知识点,真正的知识点还得接着学。Runtime主要做了哪些事,还是回原文章看吧。

记得刚毕业的时候跟同学一起去面试,面试官问了我几个技术问题我就败下阵来,同学比我厉害,面试官问了他好几个问题,回答完接着深入问,一直问道回答不上来。最后面试官告诉他,“要一直问到你回答不上来,或者我也不知道”,这样才能知道你到底了解多少。知识是无穷无尽的,一个runtime可能面试官会问很深很深,我自然是了解的不深,以后一定多加学习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值