Java中關於包裝類的一些補充

包裝類

  • 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實例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章