包裝類
- Java 數(shù)據(jù)類型分為:基本數(shù)據(jù)類型 和 引用數(shù)據(jù)類型,但基本數(shù)據(jù)類型怎么成為對象呢?
- 包裝類:基本數(shù)據(jù)類型 所對應的 引用數(shù)據(jù)類型。幫助基本數(shù)據(jù)類型,解決對象問題。
-
Object可統(tǒng)一所有數(shù)據(jù),包裝類(引用數(shù)據(jù)類型)的默認值:null
| 基本數(shù)據(jù)類型 | 包裝類型 |
|---|---|
| byte | Byte |
| short | Short |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
| boolean | Boolean |
| char | Character |
- Integer、Byte、Float、Double、Short、Long 都是屬于 Number 類的子類,Numbe 類本身提供了一系列的返回以上 6 種基本數(shù)據(jù)類型的操作。
- Character 和 Boolean 屬于 Object 的直接子類。
裝箱與拆箱
- 裝箱:將基本數(shù)據(jù)類型,變?yōu)榘b類(引用數(shù)據(jù)類型)的,這樣的過程成為 裝箱 操作。
- 拆箱:將包裝類(引用數(shù)據(jù)類型),變?yōu)榛緮?shù)據(jù)類型的過程稱為 拆箱 操作。
package com.base.demo04;
public class Test01 {
public static void main(String[] args) {
// 裝箱, 基本類型 → 引用類型
// 基本類型
int num1 = 18;
// 使用 Integer 類創(chuàng)建對象
Integer integer1 = new Integer(num1);
Integer integer2 = Integer.valueOf(num1);
// 拆箱, 引用類型 → 基本類型
Integer integer3 = new Integer(100);
int num2 = integer3.intValue();
// 上述為 jdk1.5 之前方法,之后提供了自動裝箱、拆箱
int age = 30;
// 自動裝箱
Integer integer4 = age;
System.out.println(integer4);
// 自動拆箱
int age2 = integer4;
System.out.println(age2);
}
}
- 自動裝箱和拆箱實質:編譯器編譯時調用包裝類的相應方法。
應用
基本類型和字符串之間轉換
- 8 種包裝類,提供不用類型間的轉換方式
Number 父類中提供的 6 個共性方法-
parseXXX( )靜態(tài)方法 -
valueOf( )靜態(tài)方法
-
注意:需保證類型兼容,否則拋出 NumberFormatException 異常
- 基本類型轉成字符串
int n1 = 10;
// 1. 使用+號
String s1 = n1 + "";
// 2. 使用 Integer 中的toString() 方法
String s2 = Integer.toString(n1);
String s3 = Integer.toString(n1, x); // x 為進制要求
- String 轉成基本類型:
String str = "150"; // String 轉基本數(shù)據(jù)類型,字符串不能包含非數(shù)字
// 使用Integer.parseXXX();
int n2 = Integer.parseInt(str);
// boolean 字符串形式轉成基本類型,"true" ---> true 非 “true" ———> false
String str2 = "true";
boolean b1 = Boolean.parseBoolean(str2);
- 有關整數(shù)緩沖區(qū)的問題
查看鏈接
總結
- 在進行字符串與數(shù)字轉換,或數(shù)字與字符串之間的轉換時,可以使用包裝類提供的方法。
- 在 JDK1.5 之后,提供自動裝箱及拆箱操作。