天天看點

JAVA基本資料類型和引用資料類型基本資料類型引用資料類型倆種資料類型的差別

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;
    }
           

注:轉載請注明出處。