+load方法會在runtime加載類耸弄,分類時調(diào)用
一個類的load方法熙暴,不管這個類會不會被用到,程序一啟動稚瘾,在進(jìn)入main函數(shù)之前牡昆,都會先調(diào)用類的load方法。(項(xiàng)目中的所有類孟抗,分類迁杨,不管會不會被用到,都會被加載到內(nèi)存中去的)
上圖中凄硼,MJPerson+test2 是比MJPerson+test1稍晚點(diǎn)參與編譯的铅协,越是往后參與編譯的,越優(yōu)先調(diào)用摊沉。
load方法調(diào)用時機(jī):在runtime加載類狐史,加載分類的時候,就會調(diào)用它們對應(yīng)的load方法。
由上圖可知骏全,會先用類的load方法苍柏,類的load方法調(diào)用完了,在調(diào)用分類的load方法姜贡。
load方法是通過方法地址试吁,直接調(diào)用的。
由以上截圖可以得知:類的load方法調(diào)用順序跟類的編譯順序有關(guān)楼咳,但是調(diào)用子類的load方法之前會先調(diào)用父類的load方法熄捍。分類的load方法的調(diào)用順序跟分類的編譯順序有關(guān)。(load方法只會調(diào)用一次母怜,從始至終都只會調(diào)用一次)
首先會先調(diào)用完所有類的load方法余耽,才會去調(diào)用分類的load方法
我們手動調(diào)用laod方法([MJStudent load]),就要走消息發(fā)送流程了(也就是消息發(fā)送機(jī)制)