一、byte, short, int, long四種基本資料型別以及其包裝類的比較:
int i = 100;
integer i1 = 100;
integer i2 = 100;
integer i3 = new integer(100);
integer i4 = new integer(100);
integer i5 = 300;
integer i6 = 300;
system.out.println(i == i1);// true;i1自動拆箱
system.out.println(i == i3);// true; i3自動拆箱
system.out.println(i1 == i2);// true; i1和i3都指向常量池中同乙個位址
system.out.println(i1 == i3);// false; 兩個不同的物件
system.out.println(i3 == i4);// false; 兩個不同的物件
system.out.println(i5 == i6);// false; 自動裝箱時,如果值不在-128到127,就會建立乙個新的物件
結論:1.基本資料型別與其包裝類運算或比較時,會自動拆箱成基本資料型別;
2.在自動裝裝箱時,會先檢查其值是否在-128到127之間,如果在這之間,就會直接指向常量池中其值的位址;
3.只要是new得到的一定是物件,存在堆記憶體中;
4.同時byte, short, long也具有該特性。
原因:jvm做的一些一些優化,將常用的基本資料型別在程式執行時就建立載入在常量池中。
二、double, float型別的不同:
float f1 = 100f;
float f2 = 100f;
float f3 = 300f;
float f4 = 300f;
system.out.println(f1 == f2);// false
system.out.println(f3 == f4);// false
Java 基本資料型別
基本資料型別 變數持有資料本身的值 引用型別 是某個物件的引用,而並非物件本身 引用型別用在物件上的 乙個物件可以被多個引用所指向,但同一時刻,每個引用只能指向唯一的物件 如果乙個物件被多個引用所指向,那麼無論哪個引用對物件的屬性進行修改,都會反映到其他的引用當中 型別 位數 位元組數 取值範圍 舉...
java 基本資料型別
一 基本資料型別 整型 byte short int long 在計算機中以二進位制補碼格式儲存 浮點型 float double 在計算機中以ieee754格式儲存 字元型 char 在計算機中以unicode碼格式儲存 布林型 boolean 只有true和false兩個值 二 1.長整型 lo...
Java基本資料型別
基本資料型別都是有取值範圍的,若超出範圍,則編譯報錯。位元組型的長度 1byte 位元組 8bit 位 即範圍為 128 127 如 byte b 200 或者 byte b 200,這都是錯誤的 字元型的長度 1char 16位 範圍為0 2 16 短整型的長度 1short 16位 範圍為 2 ...