基本型別與引用型別區別

2021-07-09 08:42:17 字數 602 閱讀 3601



基本型別值指的是那些儲存在棧記憶體中的簡單資料段,即這種值完全儲存在記憶體中的乙個位置。

引用型別值則是指那些儲存在堆記憶體中的物件,意思是變數中儲存的實際上只是乙個指標,這個指標指向記憶體中的另乙個位置,該位置儲存物件。

在將乙個值賦給變數時,解析器必須確定這個值是基本型別值,還是引用型別值。(undefined、null、boolean、number、string)這五種基本資料型別的值在記憶體中分別占有固定大小的空間,因此可以把他們的值儲存在棧記憶體中。對於儲存基本資料型別的變數,我們可以說他們是按值訪問的,因為我們操作的是它們實際儲存的值。

如果賦給變數的是乙個引用型別的值,則必須在堆記憶體中去為這個值分配空間。由於這種值的大小不固定,因此不能把它們儲存到棧記憶體中。但記憶體位址的大小是固定的,因此可以將記憶體位址儲存在棧記憶體中。這樣,當查詢引用型別的變數時,就可以首先從棧中讀取記憶體位址,然後在「順藤摸瓜」找到儲存在堆中的值。對於這種查詢方式,我們把它叫做按引用訪問,因為我們操作的不是實際的值,而是被那個值所引用的物件。

String 引用型別與基本型別區別

string a a string b a string c new string a system.out.println a b true system.out.println a c false 我認為string a a 這種形式宣告的變數在比較的時候將會隱式呼叫equals方法,而new出...

基本型別和引用型別

基本型別和引用型別 ecmascript包含兩個不同型別的值 基本型別值和引用型別值。基本型別值指的是簡單的資料段 引用型別值指由多個值構成的物件。當我們把變數賦值給乙個變數時,解析器首先要做的就是確認這個值是基本型別值還是引用型別值。常見的五種基本資料型別是 undifined null bool...

js 基本型別 引用型別

1 基本的資料型別有 undefined,boolean,number,string,null.基本型別的訪問是按值訪問的,就是說你可以操作儲存在變數中的實際的值 基本型別的比較是值的比較。用 比較兩個不同型別的變數時會進行一些型別轉換。但是當兩個值的型別相同的時候,即使是 也相當於是 基本型別的變...