包裝類的使用
包裝類的使用
b站學習視訊以及筆記-尚矽谷_Java零基礎教程
1. 為什麼要有包裝類(或封裝類)
為了使基本資料型別的變數具有類的特徵,引入包裝類。就比如說你int num1 = 10;這個num1是不能像物件一樣去(物件.方法)的,但是一使用了包裝類以後,就能它呼叫一些方法。當然,有時候我們也需要對包裝類的物件進行運算,所以我們又需要將它轉換為基本資料型別。
2. 基本資料型別與對應的包裝類:
3. 需要掌握的型別間的轉換:(基本資料型別、包裝類、String)
簡易版:
基本資料型別<—>包裝類:JDK 5.0 新特性:自動裝箱 與自動拆箱
基本資料型別、包裝類—>String:呼叫String過載的valueOf(Xxx xxx)
String—>基本資料型別、包裝類:呼叫包裝類的parseXxx(String s)
注意:轉換時,可能會報NumberFormatException
//基本資料型別 --->包裝類:呼叫包裝類的構造器
//單元測試類
@Test
public void test1(){
int num1 = 10;
System.out.println(num1);//10
// System.out.println(num1.toString());報錯,因為num1是基本資料型別,不是一個物件。
//轉換為包裝類,就可以呼叫方法
Integer in1 = new Integer(num1);
System.out.println(in1.toString());//10
Integer in2 = new Integer("123");
System.out.println(in2.toString());//123
//報異常
// Integer in3 = new Integer("123abc");執行時異常,不能有String型別
// System.out.println(in3.toString());
Float f1 = new Float(12.3f);
Float f2 = new Float("12.3");
System.out.println(f1);//12.3
System.out.println(f2);//12.3
Boolean b1 = new Boolean(true);
Boolean b2 = new Boolean("TrUe");
System.out.println(b2);//true
Boolean b3 = new Boolean("true123");
System.out.println(b3);//false
Order order = new Order();
System.out.println(order.isMale);//false
System.out.println(order.isFemale);//null
}
//包裝類--->基本資料型別:呼叫包裝類Xxx的xxxValue()
@Test
public void test2(){
Integer in1 = new Integer(12);
int i1 = in1.intValue();
System.out.println(i1 + 1);//13
Float f1 = new Float(12.3);
float f2 = f1.floatValue();
System.out.println(f2 + 1);//13.3
}
/*
* JDK 5.0 新特性:自動裝箱 與自動拆箱
*/
@Test
public void test3(){
// int num1 = 10;
// //基本資料型別-->包裝類的物件
// method(num1);//10
//自動裝箱:基本資料型別 --->包裝類
int num2 = 10;
Integer in1 = num2;//自動裝箱
boolean b1 = true;
Boolean b2 = b1;//自動裝箱
//自動拆箱:包裝類--->基本資料型別
System.out.println(in1.toString());
int num3 = in1;//自動拆箱
}
public void method(Object obj){
System.out.println(obj);
}
//基本資料型別、包裝類--->String型別:呼叫String過載的valueOf(Xxx xxx)
@Test
public void test4(){
int num1 = 10;
//方式1:連線運算
String str1 = num1 + "";
//方式2:呼叫String的valueOf(Xxx xxx)
float f1 = 12.3f;
String str2 = String.valueOf(f1);
Double d1 = new Double(12.4);
String str3 = String.valueOf(d1);
System.out.println(str2);//"12.3"
System.out.println(str3);//"12.4"
}
//String型別 --->基本資料型別、包裝類:呼叫包裝類的parseXxx(String s)
@Test
public void test5(){
String str1 = "123";
//錯誤的情況:
// int num1 = (int)str1;
// Integer in1 = (Integer)str1;
//可能會報NumberFormatException
int num2 = Integer.parseInt(str1);
System.out.println(num2 + 1);//124
String str2 = "true1";
boolean b1 = Boolean.parseBoolean(str2);
System.out.println(b1);//false
}
class Order{
boolean isMale;
Boolean isFemale;
}
4. 面試題
/*
* 關於包裝類使用的面試題
*
*
*/
public class InterviewTest {
@Test
public void test1() {
//三目運算子,編譯時,前面的和後面的型別必須統一,所以前面的Integer型別會自動提升為Double型,所以結果不為1,而是1.0,
Object o1 = true ? new Integer(1) : new Double(2.0);
System.out.println(o1);// 1.0
}
@Test
public void test2() {
Object o2;
if (true)
o2 = new Integer(1);
else
o2 = new Double(2.0);
System.out.println(o2);// 這裡的結果為1,不需要統一型別。
}
@Test
public void test3() {
Integer i = new Integer(1);
Integer j = new Integer(1);
System.out.println(i == j);//false
//Integer內部定義了IntegerCache結構,IntegerCache中定義了Integer[],
//儲存了從-128~127範圍的整數。如果我們使用自動裝箱的方式,給Integer賦值的範圍在
//-128~127範圍內時,可以直接使用陣列中的元素,不用再去new了。目的:提高效率
Integer m = 1;
Integer n = 1;
System.out.println(m == n);//true
Integer x = 128;//相當於new了一個Integer物件
Integer y = 128;//相當於new了一個Integer物件
System.out.println(x == y);//false
}
}
結果:
相關文章
- 包裝類的作用
- 包裝類
- Java中的包裝類Java
- Integer包裝類
- 七,包裝類
- 物件,包裝類物件
- Java 包裝類Java
- 包裝類(Wrapper)APP
- Java中的基本型別包裝類 Integer 類該怎麼使用?Java型別
- 章13——包裝類——StringBuilder類UI
- 章13——包裝類——Math類
- 包裝類的定義,API的使用和快取問題API快取
- 包裝類共同點
- 03_包裝類
- 【Java】基本型別包裝類Java型別
- 包裝類到底是幹什麼的
- 14.Java-Arrays(類)、基本型別包裝類、Integer(類)Java型別
- Java 包裝類和基本型別Java型別
- java學習筆記(包裝類)Java筆記
- Java常用類——包裝類 小白版個人推薦Java
- 二十八、基本型別包裝類型別
- 執行緒同步機制-包裝類執行緒
- Java 異常 隨機數 包裝類Java隨機
- educoder上的實訓題目(學習-Java包裝類之Byte類)Java
- JAVA集合類簡要筆記 - 內部類 包裝類 Object類 String類 BigDecimal類 system類Java筆記ObjectDecimal
- JUC包中原子類使用及其原理
- python類裝飾器的使用注意Python
- #微碼分享#AES演算法的C++包裝類演算法C++
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- 基本資料型別及其包裝類(二)資料型別
- 基本資料型別及其包裝類(一)資料型別
- wireshark安裝使用與tcpdump的抓包分析TCP
- commons-lang包常用工具類的基本使用
- python 使用pip安裝使用國內映象加速下載安裝包的方法Python
- 包裝類型別,跳脫字元,BigDecimal,BigInteger,Ca型別字元Decimal
- Java-API-基本資料型別包裝類JavaAPI資料型別
- percona-toolkit工具包的安裝和使用
- CentOS下使用rpm包安裝MySQLCentOSMySql