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