編程常用概念學習

對象Clone的2種方式:shallow copy 和 deep copy

       shallow copy和deep copy對值類型對象的都是複製其中的值,但對引用類型對象就不一樣了,當採用shallow copy方式複製了幾個引用類型對象,若更改了原型對象或副本對象中的某一個的引用類型字段的值,則其他原型對象或副本對象的這個字段的值也將跟着改變(變成修改後的值),但採用deep copy方式複製引用類型對象不會有這樣的區別,都是完全的複製。

值類型和引用類型在計算機內存中的存儲方式

       值類型:只需要一段單獨的內存,用於存儲實際的數據在「棧 (Stack)」裏。

       引用類型:需要兩段內存,第一段存儲實際的數據,其總是位於「堆 (Heap)」中;第二段是一個存在「棧」裏的引用 (reference; pointer),其指向數據在「堆」中的實際存放位置。

關於NULL

       值類型的值不可以直接爲null,如果要它的值包含null選項,需要在值類型變量聲明的時候加上'?',如int? x = 1;(聲明瞭一個int型變量x,接下來就可以給x賦值爲null,int?等價於System.Nullable<int>)。

       引用類型對象本身已經包含null,可以對其進行非空判斷。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章