14.Java包装类
轉載請保留原文鏈接:?http://dashidan.com/article/java/basic/14.html
14.Java包裝類
Java語言是一個面向對象的語言,但Java中的基本數據類型卻是不面向對象的. 這在實際使用時存在很多的不便.
為了解決這個不足(例如:集合類中只能存放對象, 不能存放基本類型數據), 在設計類時為每個基本數據類型設計了一個對應的類進行代表, 這樣八個和基本數據類型對應的類統稱為包裝類(Wrapper Class), 也翻譯為外覆類或數據類型類.
① 包裝類對應表
| 基本數據類型 | 包裝類 |
| byte | Byte |
| boolean | Boolean |
| boolean | Boolean |
| short | Short |
| char | Character |
| int | Integer |
| long | Long |
| float | Float |
| double | Double |
在這八個類名中,除了Integer和Character類, 其它六個類的類名和基本數據類型相比, 只是類名的第一個字母大寫.
② 包裝類的使用
對于包裝類說,這些類的用途主要包含兩種:
作為和基本數據類型對應的類類型存在,方便涉及到對象的操作.
包含每種基本數據類型的相關屬性如最大值、最小值等,以及相關的操作方法.
由于八個包裝類的使用比較類似,以最常用的`Integer`類為例, 介紹包裝類的應用.
1.實現int和Integer類之間的轉換
使用Integer類的構造方法和intValue()方法實現這些基本類型和包裝類之間的相互轉換.
代碼示例:
/**?將int類型轉換為Integer類型*/int?intNum?=?10;Integer?integer?=?new?Integer(intNum);/**?將Integer類型轉換為int類型*/int?intValue?=?integer.intValue();2.Integer類常用方法
parseInt方法 該方法的作用是將字符串轉換為對應的數值.
代碼示例:
如果字符串都包含的不是都是數字字符,則程序執行將出現異常報錯.
toString方法 該方法的作用是將int類型轉換為對應的String類型.
代碼示例:
int?m?=?1000;String?s?=?Integer.toString(m);//將int值轉換為特定進制的字符串:整數轉化為字符串 有2種方式:Integer.toString()方法和整數 + ""方式, 應該用那種呢? 先放結論: 用整數 + ""方式實現.
附帶真像的代碼:
package?com.dashidan.lesson13;/***?大屎蛋教程網-dashidan.com*?<p>*?Java教程基礎篇:?13.?Java包裝類*?整數轉化為字符串*/public?class?Demo2?{public?static?void?main(String[]?args)?{int?count?=?100000;long?t1?=?System.currentTimeMillis();System.out.println("");for?(int?i?=?0;?i?<?count;?i++)?{Integer?in?=?new?Integer(100);String?s1?=?in.toString();}long?t2?=?System.currentTimeMillis();System.out.println("?t2?-?t1?"?+?(t2?-?t1));for?(int?i?=?0;?i?<?count;?i++)?{String?s2?=?100?+?"";}long?t3?=?System.currentTimeMillis();System.out.println("?t3?-?t2?"?+?(t3?-?t2));}}輸出:
t2?-?t1?12 t3?-?t2?1`整數 + ""`方式比Integer.toString()的方式快了10倍左右.
③ 自動裝包/拆包
JDK自1.5(5.0)版本引入了自動拆裝箱(Autoboxing/unboxing)的語法, 也就是在進行基本數據類型和對應的包裝類轉換時, 系統將自動進行,大大方便了代碼的書寫.
/**?int類型會自動轉換為Integer類型*/int?n?=?12;/**?Integer類型會自動轉換為int類型*/Integer?m?=?n;代碼示例:
package?com.dashidan.lesson13;/***?大屎蛋教程網-dashidan.com*?<p>*?Java教程基礎篇:?13.?Java包裝類*/public?class?Demo1?{public?static?void?main(String[]?args)?{/**?將int類型轉換為Integer類型*/int?intNum?=?10;Integer?integer?=?new?Integer(intNum);/**?將Integer類型轉換為int類型*/int?intValue?=?integer.intValue();System.out.println("?intNum?"?+?intNum?+?"?intValue?"?+?intValue);/**?將字符串"666"按照十進制轉換為int,則結果為666*/int?n0?=?Integer.parseInt("666");int?n1?=?Integer.parseInt("666",?10);/**?將字符串"12"按照十六進制轉換為int,則結果為18*/int?n2?=?Integer.parseInt("12",?16);/**?將字符串"FF"按照十六進制轉換為int,則結果為255*/int?n3?=?Integer.parseInt("FF",?16);System.out.println("n0?:?"?+?n0?+?"?n1:?"?+?n1?+?"?n2:?"?+?n2?+?"?n3:?"?+?n3);/**?int類型會自動轉換為Integer類型*/int?n?=?12;/**?Integer類型會自動轉換為int類型*/Integer?m?=?n;if?(m?==?n)?{System.out.println(m?==?n);}}}輸出:
?intNum?10?intValue?10 n0?:?666?n1:?666?n2:?18?n3:?255 true④ 相關文章
?Java從入門到精通目錄
轉載于:https://blog.51cto.com/13412341/1974174
總結
以上是生活随笔為你收集整理的14.Java包装类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MongoDB 文档的更新操作
- 下一篇: java美元兑换,(Java实现) 美元