引用資料型別

2021-08-17 19:08:38 字數 885 閱讀 5034

繼續跟 上上乙個章節

格式有點亂。。。

引用資料型別:

類、介面型別、陣列型別、列舉型別、註解型別。

區別:基本資料型別在被建立時,在棧上給其劃分一塊記憶體,將數值直接儲存在棧上。

引用資料型別在被建立時,首先要在棧上給其引用(控制代碼)分配一塊記憶體,而物件的具體資訊都儲存在堆記憶體上,

然後由棧上面的引用指向堆中物件的位址。

例如,有乙個類person,有屬性name,age,帶有參的構造方法,

person p = new person("zhangsan",20);

在記憶體中的具體建立過程是:

1.首先在棧記憶體中位其p分配一塊空間;

2.在堆記憶體中為person物件分配一塊空間,並為其三個屬性設初值"",0;

3.根據類person中對屬性的定義,為該物件的兩個屬性進行賦值操作;

4.呼叫構造方法,為兩個屬性賦值為"tom",20;(注意這個時候p與person物件之間還沒有建立聯絡);

5.將person物件在堆記憶體中的位址,賦值給棧中的p;通過引用(控制代碼)p可以找到堆中物件的具體資訊。

靜態區: 儲存自動全域性變數和 static 變數(包括 static 全域性和區域性變數)。靜態區的內容在總個程式的生命週期內都存在,由編譯器在編譯的時候分配。

堆區:  一般由程式設計師分配釋放,由 malloc 系列函式或 new 操作符分配的記憶體,其生命週期由 free 或 delete 決定。在沒有釋放之前一直存在,直到程式結束,由os釋放。其特點是使用靈活,空間比較大,但容易出錯

棧區: 由編譯器自動分配釋放,儲存區域性變數,棧上的內容只在函式的範圍內存在,當函式執行結束,這些內容也會自動被銷毀,其特點是效率高,但空間大小有限

文字常量區: 常量字串就是放在這裡的。   程式結束後由系統釋放。

引用資料型別

引用 在漢語詞典中引用有兩個動詞意思 1 引出事例,用他人的事例或言詞作為根據,如 引用詩句 格言 成語等,以表達自己思想感情的修辭方法。2 引薦任用,如 引用天下名士 在計算機程式設計中,引用則是名詞作修飾,表示資料的兵符,有了兵符才具備對資料傳達命令的權力。資料 數,數值,符號,有物理表達形式 ...

基本資料型別 引用資料型別

一 基本資料型別 基本資料型別 number string boolean null undefined symbol es6 基本資料型別是指存放在棧中的簡單資料段,資料大小確定,記憶體空間大小可以分配,它們是直接按值存放的,所以可以直接按值訪問。二 引用資料型別 引用資料型別 object 在j...

資料型別和引用型別

c 支援兩種型別 資料型別和引用型別。資料型別包括一些簡單型別 例如,char int和float 列舉型別和結構型別。引用型別包括類型別 介面型別 代表 delegate 型別和陣列型別。資料型別和引用型別的區別在於,資料型別變數直接包含它們的資料,然而引用型別資料是儲存對於物件的引用。對於引用型...