一丶基本類型
(1)整數(shù)類型
整數(shù)類型有byte, short, int和long送淆,分別占用1/2/4/8個(gè)字節(jié)税产,取值范圍分別是:
(2)小數(shù)類型
小數(shù)類型有float和double,占用的內(nèi)存空間分別是4和8個(gè)字節(jié)砖第,有不同的取值范圍和精度智听,double表示的范圍更大到推,精度更高,具體來說:
(3)boolean類型
這個(gè)很簡單,直接使用true或false賦值鸠项,分別表示真和假,例如:
boolean b = true;
b = false;
(4)字符類型
字符類型char用于表示一個(gè)字符,這個(gè)字符可以是中文字符扬舒,也可以是英文字符。在內(nèi)存中,Java用兩個(gè)字節(jié)表示一個(gè)字符府瞄。賦值時(shí)把常量字符用單引號括起來,不要使用雙引號,例如:
char c = 'A';
char z = '中';
數(shù)組類型
賦值語法
基本類型的數(shù)組有三種賦值形式换况,如下所示:
int[] arr = {1,2,3};
int[] arr = new int[]{1,2,3};
int[] arr = new int[3];
arr[0]=1; arr[1]=2; arr[2]=3;
第一種和第二種都是預(yù)先知道數(shù)組的內(nèi)容觉吭,而第三種是先分配長度鲜滩,然后再給每個(gè)元素賦值黎侈。
第三種形式中脐往,即使沒有給每個(gè)元素賦值瘤礁,每個(gè)元素也都有一個(gè)默認(rèn)值,這個(gè)默認(rèn)值跟數(shù)組類型有關(guān)。數(shù)值類型的值為0陨享,boolean為false, char為空字符艳狐。
數(shù)組有一個(gè)length屬性喷斋,但只能讀粉私,不能改。
三丶數(shù)組和基本類型的區(qū)別
一個(gè)基本類型變量漓摩,內(nèi)存中只會有一塊對應(yīng)的內(nèi)存空間桌硫。但數(shù)組有兩塊卓舵,一塊用于存儲數(shù)組內(nèi)容本身肿嘲,另一塊用于存儲內(nèi)容的位置砚嘴。
例:
為什么數(shù)組要用兩塊空間
不能只用一塊空間嗎工育?我們來看下面這個(gè)代碼:
int[] arrA = {1,2,3};
int[] arrB = {4,5,6,7};
arrA = arrB;
這個(gè)代碼中,arrA初始的長度是3,arrB的長度是4,后來將arrB的值賦給了arrA。如果arrA對應(yīng)的內(nèi)存空間是直接存儲的數(shù)組內(nèi)容,那么它將沒有足夠的空間去容納arrB的所有元素。
用兩塊空間存儲,這個(gè)就簡單的多卒废,arrA存儲的值就變成了和arrB的一樣参袱,存儲的都是數(shù)組內(nèi)容{4,5,6,7}的地址晒来,此后訪問arrA就和arrB是一樣的了接箫,而arrA {1,2,3}的內(nèi)存空間由于無人引用會被垃圾回收泌辫,如下圖所示:
由上墨礁,也可以看出驶乾,給數(shù)組變量賦值和給數(shù)組中元素賦值是兩回事风科。給數(shù)組中元素賦值是改變數(shù)組內(nèi)容,而給數(shù)組變量賦值則會讓變量指向一個(gè)不同的位置。
上面我們說數(shù)組的長度是不可以變的,不可變指的是數(shù)組的內(nèi)容空間,一經(jīng)分配二跋,長度就不能再變了各拷,但是可以改變數(shù)組變量的值蚊荣,讓它指向一個(gè)長度不同的空間,就像上例中arrA后來指向了arrB一樣议双。
寫在最后
1.Xmind下載地址:https://github.com/JinBoy23520/CoderToDeveloperByTCLer