您好,登錄后才能下訂單哦!
這篇文章主要介紹了Java如何使用與操作包裝類,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
何為包裝類?
基本類型包裝類的概述: 將基本數據類型封裝成對象的好處在于可以在對象中定義更多的功能方法操作該數據 包裝類是將基本數據類型的值包裝為Java中的對象,Java語言為8種基本數據類型分別提供了包裝類 首先看一下八大數據類型的包裝類:
包裝類型出現的原因: 因為Java是一個面向對象的語言,基本類型并不具有對象的性質,為了與其他對象“接軌”就出現了包裝類型,它相當于將基本類型“包裝起來”,使得它具有了對象的性質,并且為其添加了屬性和方法,豐富了基本類型的操作
常用的操作:用于基本數據類型與字符串之間的轉換
Integer類: 在這里就講一下這個類,其他七個可以去查官方文檔,用法什么的都是一樣的。
Integer的構造方法:
Integer(int value) //構造一個新分配的 Integer 對象,它表示指定的 int 值 Integer(String s) // 構造一個新分配的 Integer 對象,它表示 String 參數所指示的 int 值。
例:
Integer i1 = new Integer(123); Integer i2 = new Integer("123"); System.out.println(i1); System.out.println(i2); //兩者的結果輸出都是123,這就是兩個構造方法的使用
最重要的就是String和int類型的相互轉換,當然這就需要用到Integer的一些方法: 首先, int----->String:
// int----String 有兩個方法 int a = 100; //方法一: 直接拼接 String s1 = "" + a; //方便簡潔的方法 System.out.println(s1); //方法二: String包裝類里面的 valueOf(int i) 方法 //返回的 int參數的字符串表示形式。 String s2 = String.valueOf(a); //傳入整數即可,需要用String類型接收 System.out.println(s1);
String----->int:
//方法一: //String---->Integer----->int //先將String轉為Integer包裝類,然后使用Integer內的方法intValue() 返回int String s = "100"; Integer i = Integer.valueOf(s); i.intValue(); //Integer內的方法intValue() 返回int System.out.println(i); //方法二: //Integer方法: parseInt(String s) ,將字符串參數作為帶符號的十進制整數 int y = Integer.parseInt(s); System.out.println(s);
Integer的equals方法: Integer的equals方法繼承自Object,并且進行了重寫,也就是判斷兩個Integer值是否相等:
Integer i1 = new Integer(123); //輸入int型的123 Integer i2 = new Integer("123"); //輸入String型的123 boolean b = i1.equals(i2); System.out.println(b);
//這里輸出的數 true
//Integer類型的對象 i1 和 i2包含的值相等時;其他情況返回false
Integer的其他主要方法,紅色字體便是方法名:大家可以自行去嘗試
基本類型和包裝類型的總結:
基本類型的優勢:數據存儲相對簡單,運算效率比較高
包裝類的優勢:有的容易,比如集合的元素必須是對象類型,滿足了java一切皆是對象的思想
聲明方式不同:基本類型不適用new關鍵字,而包裝類型需要使用new關鍵字來在堆中分配存儲空間
存儲方式及位置不同:基本類型是直接將變量值存儲在堆棧中,而包裝類型是將對象放在堆中,然后通過引用來使用;
初始值不同:基本類型的初始值如int為0,boolean為false,而包裝類型的初始值為null
使用方式不同,基本類型直接賦值直接使用就可以
在Java中,還有很多的類,比如Math,System,Date等等,若有需要這些都可以參考Java官方文檔。
裝箱:把基本數據類型轉換成相應的包裝類型
拆箱:把包裝類型類型轉換成相應的基本數據類型
裝箱:
//這是一個Integer普通的構造: Integer i1 = new Integer(100); //而這個寫法就是自動裝箱,其實這個底層也做了 new Integer(100) Integer i1 = 100; //這兩者效果是一樣的
拆箱:
//比如要給i1加上200 Integer i1= 100; //因為現在i1是引用數據類型,得先轉換成基本數據類型 i1 = i1.intValue()+200; //這個叫手動拆箱 System.out.println(i1); //這樣輸出就是300 //自動拆箱: nteger i1 = 100; i1+=200; //這個就是自動拆箱, //其實這個自動拆箱底層完成了一次拆箱和一次裝箱 //首先i2.intValue(), 然后i2 = i2+200 System.out.println(i1);
但是我們會發現一個小問題:
//當i為null的時候: Integer i = null; i+=100; System.out.println(i); //這樣執行會報一個NullPointerException的錯誤 //所以我們需要添加一個判斷: Integer i = null; if(i!=null){ i+=100; } System.out.println(i);
所以我們需要注意:
只要是對象,在操作前,必須做一個不為null的判斷
實際上,包裝類比基本類型更好用——基本類型能做的事情,包裝類也能做。 但包裝類能做的,基本類型不一定能做,比如要賦一個 null 值。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“Java如何使用與操作包裝類”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。