54,物件的儲存細節

2021-07-08 15:08:46 字數 505 閱讀 5622

1,建立物件時候,返回的位址就是類的第0個屬性的位址,是乙個隱藏著的isa屬性,isa是乙個指標,佔8個位元組。

2,其實,類也是乙個物件,是系統自動幫我們建立的,儲存了當前所有物件的方法,而例項物件是我們用程式手動通過new

來建立的,並且,每乙個例項物件都有乙個isa指標,例項物件的isa指標都會指向建立它的類物件。

3,類建立物件,每乙個物件在記憶體中都佔據一定的儲存空間,每乙個物件都有乙份屬於自己的成員變數。所有的物件公用類的成員方法

只有乙份,並儲存於類物件中。

4,為什麼類方法執行效率會比物件方法快呢?

比如:[p eat],若eat是成員方法, p是物件,它會找到物件儲存位址裡面的isa指標,再根據isa指標去類物件裡面,找到eat方法,再執行。

而[person eat],若eat是類方法,類直接去類物件裡面找到eat方法,並執行。

7 物件的轉型

1 物件的向上轉型 將子類的物件賦值給父類的引用。student s new student 如學生張三 person p s 張三這個人 注意 1 乙個引用能夠呼叫哪些成員 變數和方法 取決於這個引用p裡定義了什麼成員。2 對於,子類重寫父類的方法,引用呼叫的是哪乙個方法,取決於這個引用所指向的物...

3物件的共享

作用 將當前執行緒對volatile的改變立即通知給其他執行緒 保證了volatile變數對執行緒的可見性 volatile是一種比synchronizyed稍弱的同步機制 對可見性的影響 volatile變數對可見性的影響比volatile變數本身更為重要。當執行緒a首先寫入乙個volatile變...

17 物件的構造

如果沒有賦初值,全域性儲存區的成員變數初始值系統預設為0,棧空間和堆空間上成員變數初始值系統預設為隨機數。從程式設計的角度,物件只是變數,c 中可以定義與類名相同的特殊成員函式 建構函式。建構函式沒有任何返回型別的宣告。建構函式在物件定義時自動呼叫。每個物件在使用之前都應該初始化,建構函式用於物件初...