二十八、基本型別包裝類
一、 基本型別包裝類概述
在實際程式使用中,程式介面上使用者輸入的資料都是以字串型別進行儲存的。而程式開發中,我們需要把字串資料,根據需求轉換成指定的基本資料型別,如年齡需要轉換成int型別,考試成績需要轉換成double型別等。那麼,想實現字串與基本資料之間轉換怎麼辦呢?
Java中提供了相應的物件來解決該問題,基本資料型別物件包裝類:java將基本資料型別值封裝成了物件。封裝成物件有什麼好處?可以提供更多的操作基本數值的功能。
8種基本型別對應的包裝類如下:
其中需要注意int對應的是Integer,char對應的Character,其他6個都是基本型別首字母大寫即可。
基本資料型別物件包裝類特點:用於在基本資料和字串之間進行轉換。
二、基本型別和String的相互轉換
-
將字串轉成基本型別:
parseXXX(String s);其中XXX表示基本型別,引數為可以轉成基本型別的字串,如果字串無法轉成基本型別,將會發生數字轉換的問題 [NumberFormatException]。
System.out.println(Integer.parseInt("123") + 2);
//列印結果為 125
- 將基本數值轉成字串有3種方式:
- 基本型別直接與””相連線即可;34+""
-
呼叫String的valueOf方法;String.valueOf(34) ;
-
呼叫包裝類中的toString方法;Integer.toString(34) ;
三、 基本資料型別和包裝類的相互轉換
使用int型別與Integer物件轉換進行演示,其他基本型別轉換方式相同。
-
基本數值---->包裝物件
Integer i = new Integer(4);//使用建構函式函式
Integer ii = new Integer("4");//建構函式中可以傳遞一個數字字串
Integer iii = Integer.valueOf(4);//使用包裝類中的valueOf方法
Integer iiii = Integer.valueOf("4");//使用包裝類中的valueOf方法
-
包裝物件---->基本數值
int num = i.intValue();
四、自動拆裝箱
在需要的情況下,基本型別與包裝型別可以通用。有些時候我們必須使用引用資料型別時,可以傳入基本資料型別。
比如:
基本型別可以使用運算子直接進行計算,但是引用型別不可以。而基本型別包裝類作為引用型別的一種卻可以計算,原因在於,Java”偷偷地”自動地進行了物件向基本資料型別的轉換。
相對應的,引用資料型別變數的值必須是new出來的記憶體空間地址值,而我們可以將一個基本型別的值賦值給一個基本型別包裝類的引用。原因同樣在於Java又”偷偷地”自動地進行了基本資料型別向物件的轉換。
自動拆箱:物件轉成基本數值
自動裝箱:基本數值轉成物件
Integer i = 4;//自動裝箱。相當於Integer i = Integer.valueOf(4);
i = i + 5; //等號右邊:將i物件轉成基本數值(自動拆箱) i.intValue() + 5; 加法運算完成後,再次裝箱,把基本數值轉成物件。
自動裝箱(byte常量池)細節的演示
當數值在byte範圍之內時,進行自動裝箱,不會新建立物件空間而是使用原來已有的空間。
Integer a = new Integer(3);
Integer b = new Integer(3);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println("---------------------");
Integer x = 127;
Integer y = 127;
//在jdk1.5自動裝箱時,如果數值在byte範圍之內,不會新建立物件空間而是使用原來已有的空間。
System.out.println(x==y); //true
System.out.println(x.equals(y)); //true
相關文章
- 【Java】基本型別包裝類Java型別
- Java 包裝類和基本型別Java型別
- 基本資料型別及其包裝類(二)資料型別
- 基本資料型別及其包裝類(一)資料型別
- 14.Java-Arrays(類)、基本型別包裝類、Integer(類)Java型別
- Java-API-基本資料型別包裝類JavaAPI資料型別
- Java中的基本型別包裝類 Integer 類該怎麼使用?Java型別
- Java基礎-基本型別和包裝型別Java型別
- 【Java】基本資料型別包裝類面試題之一Java資料型別面試題
- java基本型別和包裝型別的“==”和equals()方法Java型別
- 你不知道的JavaScript--Item4 基本型別和基本包裝型別(引用型別)JavaScript型別
- java- 型別-轉換:基本型別以及包裝型別的轉換Java型別
- Java中基本資料型別和包裝型別有什麼區別?Java資料型別
- 面試官:兄弟,說說基本型別和包裝型別的區別吧面試型別
- 原子更新基本型別類型別
- 包裝類型別,跳脫字元,BigDecimal,BigInteger,Ca型別字元Decimal
- Java 包裝類:原始資料型別與迭代器Java資料型別
- 詳解Java 虛擬機器(第④篇)——8 種基本型別的包裝類和常量池Java虛擬機型別
- cheerp資料型別包裝資料型別
- JavaScript中的包裝型別詳解JavaScript型別
- PHP 技巧 - 封裝基本的資料型別PHP封裝資料型別
- Typescript:基本型別TypeScript型別
- Go 基本型別Go型別
- 包裝類
- js基本型別和引用型別區別JS型別
- 看下面程式碼,判斷a和b的型別是否為true?為什麼?什麼是基本包裝型別?[程式碼]型別
- JavaScript - 基本型別與引用型別值JavaScript型別
- 基本資料型別與字串型別資料型別字串
- Java的基本型別和引用型別Java型別
- 【Java】基本資料、包裝類間轉換與處理Java
- [Java] 基本資料、包裝類間轉換與處理Java
- 基本資料型別資料型別
- JS中資料型別、內建物件、包裝型別物件、typeof關係JS資料型別物件
- JS篇-基本型別和引用型別、typeofJS型別
- Integer包裝類
- 七,包裝類
- 物件,包裝類物件
- Java 包裝類Java