天天看點

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、運作時庫和标準庫是不同的。