最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java面向?qū)ο笾b類的用途與實(shí)際使用

 更新時(shí)間:2022年04月06日 17:08:04   作者:誰是誰的小確幸  
所謂包裝類,就是能夠直接將簡(jiǎn)單類型的變量表示為一個(gè)類,在執(zhí)行變量類型的相互轉(zhuǎn)換時(shí),我們會(huì)大量使用這些包裝類,本文我們來深入探索一下Java包裝類的相關(guān)內(nèi)容,需要的朋友可以參考下

一、什么是包裝類

包裝類(Wrapper Class): Java是一個(gè)面向?qū)ο蟮木幊陶Z言,但是Java中的八種基本數(shù)據(jù)類型卻是不面向?qū)ο蟮模瑸榱耸褂梅奖愫徒鉀Q這個(gè)不足,在設(shè)計(jì)類時(shí)為每個(gè)基本數(shù)據(jù)類型設(shè)計(jì)了一個(gè)對(duì)應(yīng)的類進(jìn)行代表,這樣八種基本數(shù)據(jù)類型對(duì)應(yīng)的類統(tǒng)稱為包裝類(Wrapper Class),包裝類均位于java.lang包。

二、包裝類的用途

為了使用方便Java中將8中基本數(shù)據(jù)類型進(jìn)行了封裝:除了Integer和Character類以后,其它六個(gè)類的類名和基本數(shù)據(jù)類型一直,只是類名的第一個(gè)字母大寫即可。

boolean —> Boolean
char —> Character
byte—> Byte
short—> Short
long—> Long
int —> Integer
float—> Float
double—> Double

對(duì)于包裝類說,用途主要包含兩種:

a、作為 和基本數(shù)據(jù)類型對(duì)應(yīng)的類 類型存在,方便涉及到對(duì)象的操作。

b、包含每種基本數(shù)據(jù)類型的相關(guān)屬性如最大值、最小值等,以及相關(guān)的操作方法。

三、包裝類的實(shí)際使用(以int和integer為例)

1.int和integer類之間的轉(zhuǎn)換

在實(shí)際轉(zhuǎn)換時(shí),使用Integer類的構(gòu)造方法和Integer類內(nèi)部的intValue方法實(shí)現(xiàn)這些類型之間的相互轉(zhuǎn)換:

        //
        int n=5;
        Integer n1=new Integer(n);
        System.out.println("int類型轉(zhuǎn)換為integer類:"+n1);
        //
        Integer i=new Integer(50);
        int i1 = i.intValue();
        System.out.println("integer類轉(zhuǎn)換為int類型:"+i1);

2、Integer類內(nèi)部的常用方法

Integer類的主要方法有:parseInt方法和toString方法。

        //parseInt方法: 數(shù)字字符串類型轉(zhuǎn)成int類型
        String ss="123";
        int ii = Integer.parseInt(ss);
        System.out.println("字符類型轉(zhuǎn)成整型:"+ii);
        //toString方法:int類型轉(zhuǎn)成數(shù)字字符串類型
        int ii2=123;
        String ss2 = Integer.toString(ii2);
        System.out.println("int類型轉(zhuǎn)成數(shù)字字符串類型:"+ss);

JDK自從1.5版本以后,就引入了自動(dòng)拆裝箱的語法,也就是在進(jìn)行基本數(shù)據(jù)類型和對(duì)應(yīng)的包裝類轉(zhuǎn)換時(shí),系統(tǒng)將自動(dòng)進(jìn)行,這將大大方便程序員的代碼書寫。

自動(dòng)裝箱:將 基本數(shù)據(jù)類型 封裝為對(duì)象類型,來符合java的面向?qū)ο蟮乃枷搿?/p>

自動(dòng)拆箱:將對(duì)象重新轉(zhuǎn)化為基本數(shù)據(jù)類型。

        //5是基本數(shù)據(jù)類型,通過自動(dòng)裝箱變成對(duì)象類型。
        //編譯器執(zhí)行了Integer iii = Integer.valueOf(5)
        Integer iii=5;
        //自動(dòng)拆箱,實(shí)際上執(zhí)行了 int iii2 = iii.intValue()
        int iii2=iii;
        System.out.println(iii2);

valueOf()源碼分析:

public static Integer valueOf(int i) {
     assert IntegerCache.high>= 127;
     if (i >= IntegerCache.low&& i <= IntegerCache.high)
     return IntegerCache.cache[i+ (-IntegerCache.low)];
     return new Integer(i); 
}

說明:Integer iii=5;相當(dāng)于編譯器執(zhí)行了Integer iii = Integer.valueOf(5)操作。這個(gè)方法就是返回一個(gè) Integer 對(duì)象,只是在返回之前,看作了一個(gè)判斷,判斷當(dāng)前 i 的值是否在 [-128,127] 區(qū)別,且 IntegerCache 中是否存在此對(duì)象,如果存在,則直接返回引用,否則,創(chuàng)建一個(gè)新的對(duì)象。

3.包裝類的緩存值

各個(gè)包裝類緩存值范圍 :

boolean:true和false 
byte:-128~127 
char:0~127 
short:-128~127 
int:-128~127 
long:-128~127 

特別注意:對(duì)于float和double沒有緩存。

在對(duì)上述值進(jìn)行裝箱的時(shí)候(如:Character c1=127;or Integer i= Integer.valueOf(1); 這個(gè)不行哦:Integer i2=new Integer(1);因?yàn)檫@是新建了一個(gè)對(duì)象出來。),并不是創(chuàng)建一個(gè)新對(duì)象而是使用緩存中的對(duì)象,如果超出范圍則需要新建立對(duì)象。

四、常見的面試題

1.Java中Int與Integer的區(qū)別?

一、int 是基本類型,直接存數(shù)值;而integer引用數(shù)據(jù)類型。

二、Int的聲明不需要實(shí)例化,且變量聲明后的初始值為0;Integer的是一個(gè)類,初始值為null,需要進(jìn)行實(shí)例化,才能對(duì)變量數(shù)據(jù)進(jìn)行處理。

三、Integer類是int的包裝類,實(shí)際開發(fā)中Integer被看成一個(gè)對(duì)象,可以進(jìn)行數(shù)據(jù)轉(zhuǎn)換等操作。

2.判斷下面程序片段輸出的結(jié)果:

        Integer num1 = 200;   
        Integer num2 = 200;           
        System.out.println("num1==num2: "+(num1==num2));                    
        Integer num3 = 100;   
        Integer num4 = 100;   
        System.out.println("num3==num4: "+(num3==num4)); 

輸出結(jié)果:num1num2:false 和num3num4:true

說明:

首先要明確equal方法與的區(qū)別:

equals() 比較的是兩個(gè)對(duì)象的值(內(nèi)容)是否相同。

"" 比較的是兩個(gè)對(duì)象的引用(內(nèi)存地址)是否相同,也用來比較兩個(gè)基本數(shù)據(jù)類型的變量值是否相等。

java定義:在自動(dòng)裝箱時(shí)對(duì)于值從–128到127之間的值,它們被裝箱為Integer對(duì)象后,會(huì)存在內(nèi)存中被重用,始終只存在一個(gè)對(duì)象而如果超過了從–128到127之間的值,被裝箱后的Integer對(duì)象并不會(huì)被重用,即相當(dāng)于每次裝箱時(shí)都新建一個(gè) Integer對(duì)象;

總結(jié)

到此這篇關(guān)于Java面向?qū)ο笾b類的文章就介紹到這了,更多相關(guān)Java包裝類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

陕西省| 绍兴县| 衢州市| 尖扎县| 芷江| 壶关县| 内丘县| 陈巴尔虎旗| 嘉祥县| 汕头市| 淮滨县| 武宁县| 南阳市| 和田市| 宁乡县| 靖州| 扬州市| 贵德县| 三穗县| 土默特右旗| 汉寿县| 图木舒克市| 奉新县| 垫江县| 牟定县| 亚东县| 手游| 武义县| 弋阳县| 梧州市| 汉源县| 额敏县| 迁西县| 丁青县| 五华县| 河池市| 探索| 涪陵区| 东丰县| 新营市| 木里|