天天看点

runtime system学习笔记

经常听到runtime这个词,却不知是做什么的,最近在一本书上看到了它的一点相关知识,记录如下:

1、Object-C是一门动态编程语言,具有动态特性,所以,OC不仅需要编译环境,也需要运行时系统(runtime system)来执行编译好的代码。

2、作用:类似于OC的操作系统,负责完成对象的生成(例alloc init)、释放(例release)的内存管理,为发来的消息查找对应的处理方法(例respondsToSelector:)。

3、与NSObject的关系密切,通常情况下,程序无法使用运行时系统提供的功能,但是NSObject提供了运行时系统的基本功能,那么继承自NSObject的所有子类都可使用运行时系统的基本功能。

4、运行时也是一段代码,且是人为的一段代码。利用高级语言的在运行时都会执行一定得策略的特点,而这些策略也是可执行的代码,这些代码也一定会出现在你的可执

行程序中。把这些策略就叫做运行时。不同的语言,策略是不一样的,那么相应的运行时也不一样,有多的也有少的。C语言的runtime做的比较少,而更高级的java等可以做

很多。有些语言还给运行时添加了一些标准,runtime可以做什么。

5、运行时库,个人理解的就是,运行时是一段代码,而运行时库是很多运行时代码的集合。运行时库是由编译器的编写者决定的。以面向编程语言,提供其最基本的执行时需要。比如Visual Basic需要复杂的运行时库支持而C的运行时库则相对简单。

6、先看看C的runtime-system都能干些什么。它管理进程的堆栈,创建局部变量所用的空间,把调用参数压入函数栈,维护栈的状态。而上面第二点也提到了,OC的运行时系统的作用。

7、运行时库和标准库是不同的。