包裝類
- 8種基本數據類型的相應的引用類型————基本數據類型的包裝類
byte —— Byte
short —— Short
int —— integer
long —— Long
char ——Character
float —— Float
double —— Double
boolean —— Boolean
- 自動裝箱
基本類型變量直接賦給對應的包裝類變量
Integer inobj = 5 ;
- 自動拆箱
包裝類對象直接賦給一個對應的基本類型變量
int i = inobj ;
- 包裝類提供的兩種方法:arseXxx(String s ) 和 valueOf ()
用於將基本類型變量轉換成字符串
String s = "666";
int i_1 = Integer.parseInt(s);
int i_2 = Integer.valueOf(s);
============================
String s_1 = "6.666";
float f_1 = Float.parseFloat(s_1);
float f_2 = Float.valueOf(s_1);
============================
String s_2 = String.valueOf(2.6666f);
String s_3 = String.valueOf(3.6666);
String s_4 = String.valueOf(true);
基本變量 —> 字符串
- valueof()
- 在值後面加上 “” 連接運算,回自動把基本類型變量轉換成字符串
字符串 —> 基本變量
- parseXxx()
- valueof()
關於比較
包裝類的實例和數值類型的值是可以直接進行比較的,底層比較是直接取出包裝類實例所包裝的數值來進行比較的。
Integer a = Integer.valueof(6) ;
system.out.println(a > 5.0); //返回true
兩個包裝類 實例比較,只有兩個包裝類引用指向同一個對象的時候纔會返回True
Integer i_1 = 2 ;
Integer i_2 = 2 ;
system.out.println(i_1 == i_2) //返回true
================================
Integer i_3 = 128;
Integer i_4 = 128;
system.out.println(i_3 == i_4);//返回false
原因:
1,在Integer類中,系統會自動把-128到127之間的整數自動裝箱成Integer實例,並且放入了一個名爲cache的數組中緩存下來
2,當以後再添加一個範圍在-128到127之間的整數自動裝箱爲Integer實例的時候,永遠都是指向對應數組元素的地址,所以會相等
3,但是,當你每次將一個-128到127範圍之外的整數自動裝箱爲Integer實例的時候,總是重新創建一個Integer實例