java包装器类型
一、為什么要使用包裝器類型
java是面向?qū)ο蟮恼Z言,但基本類型并不是面向?qū)ο蟮?#xff0c;從而出現(xiàn)了包裝器類型,并且包裝器添加了更多的屬性和方法。如我們在使用集合類型Collection的時候就一定要使用包裝類型而非基本類型,它相當于將基本類型"包裝起來",使它具有了對象的性質(zhì),豐富了基本類型的操作。
java 的兩大數(shù)據(jù)類型
● 基本類型(或者叫做內(nèi)置類型)
● 引用數(shù)據(jù)類型
基本類型:不存在"引用"的概念,基本類型都是直接存儲在內(nèi)存的內(nèi)存棧上面,數(shù)據(jù)本身的值就存儲在棧空間里面
而Java語言里面只有這八種數(shù)據(jù)類型是這種存儲模型;
引用數(shù)據(jù)類型:“引用”是存儲在有序的內(nèi)存棧上的,而對象本身的值存儲在內(nèi)存堆上的。
二、什么裝箱和拆箱
裝箱:自動將基本數(shù)據(jù)類型轉(zhuǎn)換為包裝器類型。
拆箱:自動將包裝器類型轉(zhuǎn)換為基本數(shù)據(jù)類型。
?三、裝箱和拆箱是如何實現(xiàn)的?
裝箱過程是通過調(diào)用包裝器的valueOf方法實現(xiàn)的,而拆箱過程是通過調(diào)用包裝器的 xxxValue方法實現(xiàn)的。(xxx代表對應的基本數(shù)據(jù)類型)。
示例1:
Double i1 = 100.0; Double i2 = 100.0; Double i3 = 200.0; Double i4 = 200.0;System.out.println(i1==i2); System.out.println(i3==i4);輸出結(jié)果:
falsefalse為什么都返回false呢,我們看下Double.valueOf()方法,就知曉了:
private final double value;public Double(double value) {this.value = value; }public static Double valueOf(double d) {return new Double(d); }示例2:
Boolean i1 = false; Boolean i2 = false; Boolean i3 = true; Boolean i4 = true;System.out.println(i1==i2); System.out.println(i3==i4);輸出結(jié)果
truetrue為什么都返回true呢,我們看下Boolean.valueOf()方法,就知曉了:
public static final Boolean TRUE = new Boolean(true); public static final Boolean FALSE = new Boolean(false);public static Boolean valueOf(boolean b) {return (b ? TRUE : FALSE); }?
轉(zhuǎn)載于:https://www.cnblogs.com/zhangqingquan/p/10827377.html
總結(jié)
- 上一篇: Shell基础之条件判断 分支判断
- 下一篇: HDU - 3966 Aragorn's