JAVA基本資料類型和引用資料類型
- 基本資料類型
- 引用資料類型
- 倆種資料類型的差別
基本資料類型
byte:Java中最小的資料類型,在記憶體中占8位(bit),即1個位元組,取值範圍-128~127,預設值0
short:短整型,在記憶體中占16位,即2個位元組,取值範圍-32768~32717,預設值0
int:整型,用于存儲整數,在内在中占32位,即4個位元組,取值範圍-2147483648~2147483647,預設值0
long:長整型,在記憶體中占64位,即8個位元組-263~263-1,預設值0L
float:浮點型,在記憶體中占32位,即4個位元組,用于存儲帶小數點的數字(與double的差別在于float類型有效小數點隻有6~7位),預設值0
double:雙精度浮點型,用于存儲帶有小數點的數字,在記憶體中占64位,即8個位元組,預設值0
char:字元型,用于存儲單個字元,占16位,即2個位元組,取值範圍0~65535,預設值為空
boolean:布爾類型,占1個位元組,用于判斷真或假(僅有兩個值,即true、false),預設值false
引用資料類型
java的引用類型有:類(class),接口(interface),數組(array)
倆種資料類型的差別
基本資料類型是直接存在棧裡面的。
引用資料類型是先在棧裡面配置設定一個指向堆記憶體的指向(指針),真正的内容是存在堆裡面的。
基本資料類型是可以直接通過 == 來比較值是否相等,而引用變量用 ==比較的是類在棧記憶體存放的位址值。
引用資料類型要比較值是否相同需要重寫equals方法。我們在代碼開發中最常用的就是String的equals方法了,String的equals方法可以直接用來比較倆個字元串是否相同,是因為String類重寫了equals方法。
附帶String的equals方法的源碼
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
注:轉載請注明出處。