中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

Java的自動裝箱和拆箱的概念

本篇內(nèi)容主要講解“Java的自動裝箱和拆箱的概念”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java的自動裝箱和拆箱的概念”吧!

為洛浦等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計(jì)制作服務(wù),及洛浦網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、洛浦網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

Java作為面向?qū)ο笳Z言,有人認(rèn)為所看到的都是對象,事實(shí)上,在Java SE 5之前,基本類型默認(rèn)并不是采用對象存在的如果您想要把基本類型作為對象來處理,就必須自行轉(zhuǎn)換,不過,在Java SE 5之后,為基本數(shù)據(jù)類型提供了自動裝箱和拆箱功能,使得將基本類型轉(zhuǎn)換為對象變得極其便捷。

在這里來捋一捋java的基本數(shù)據(jù)類型,不理不要緊,一理才發(fā)現(xiàn)俺也掌握的不是那么明確,在這里俺也再次學(xué)習(xí)下  總計(jì)有八個,分別是  byte字節(jié)型(一個字節(jié)),char字符型(兩個字節(jié)),short短整型(兩個字節(jié)),int整型(四個字節(jié)),  long長整型(八個字節(jié)),float浮點(diǎn)型(四個字節(jié)),double 雙精度浮點(diǎn)型(八個字節(jié)),boolean型(一個字節(jié))

在javase5之前,如果想要把基本數(shù)據(jù)類型作為對象來操作,就需要采用對應(yīng)的對象,來把它們打包才行

現(xiàn)在雖然不用這樣了,但其中也有一些要注意的地方,俺揪出來曬曬。

先說說類和對象,建立個概念吧先

類--可以認(rèn)為是對象的設(shè)計(jì)圖  對象--是按照設(shè)計(jì)圖實(shí)現(xiàn)了的具體工具  先這么簡單理解吧,如果真要扯開了說,那可是軟件工程里面的一門專業(yè)課,我們有個概念就好

之所以要將基本類型數(shù)據(jù)打包成為對象,原因很簡單,是因?yàn)閷ο罂梢詳y帶更多的數(shù)據(jù)。

手動、自動裝箱拆箱示例

Long,Integer,Double,F(xiàn)loat,Boolean等等的類就是所謂的wrapper類,就跟wrapper這個單詞所代表的意思一樣,就是提供一個“包裝,加殼”,把基本數(shù)據(jù)類型放在里面,來看代碼,體會下先

  1. public class WrapperDemo{   

  2.     public staticvoid main(String[] args){   

  3.          int data1=21;   

  4.          int data2=24;   

  5.          //打包成為對象   

  6.          Integer data1Wrapper = new Integer(data1);   

  7.          Integer data2Wrapper = new Integer(data2);   

  8.          //原始數(shù)據(jù)直接除以3   

  9.          System.out.println(data1/3);   

  10.          //將數(shù)據(jù)打包,轉(zhuǎn)換為double型,除以3   

  11.          System.out.println(data1Wrapper.doubleValue()/3);   

  12.         //比較   

  13.         System.out.println(data1Wrapper.compareTo(data2Wrapper));   

  14.     }   

  15.    

  16. }   


Java的自動裝箱和拆箱的概念
圖1-1 WrapperDemo的運(yùn)行結(jié)果

通過上面的代碼和運(yùn)行結(jié)果,看到了將基本數(shù)據(jù)類型打包成為對象帶來的好處了吧,別著急,這還只是javase5之前的做法,在javase5之后就已經(jīng)支持自動裝箱和拆箱了,在這,就不再單獨(dú)寫代碼出來了,只寫幾個能說明問題的語句就可以了,相信很容易理解的。

javase5之前,手動打包    Integer data1 = new Integer(10);    事項(xiàng)將基本類型數(shù)據(jù)轉(zhuǎn)換為對象    javase5之后,支持自動打包    Integer data1 = 10;    便可以實(shí)現(xiàn)將基本類型的數(shù)據(jù)轉(zhuǎn)換為對象    eg:    在上面的代碼中,可以采用,可以直接進(jìn)行兩個基本數(shù)據(jù)類型的比較    data1.compareTo(data2);    基本數(shù)據(jù)類型本身沒有什么方法,當(dāng)你運(yùn)行之后會發(fā)現(xiàn),它仍然可以正確運(yùn)行,這就自動裝箱和拆箱帶來的好處

再來說說自動裝箱拆箱

自動裝箱和拆箱,從本質(zhì)上講,是編譯器幫了我們的忙,這就是所謂的“編譯器蜜糖”,既然這么好,是不是就可以放心的用了呢?

先別著急,喝口水,咱再接著嘮

看看下面的情況,您是否了解

Integer i = null;//表明i沒有參考至任何對象  int j = i ;//相當(dāng)于 int j = i.intValue()  這樣的代碼,編譯時是可以通過的,因?yàn)樗恼Z法是正確的,但在運(yùn)行時,就會排除NullPointerException錯誤,這是由于i并沒有參考至任何對象造成的
個人建議,如果您對裝箱拆箱不是理解的很清楚,***還是按部就班的一步一步的對它進(jìn)行裝包和拆包,這樣,有的時候,可能會為你節(jié)省很多糾錯的時間哦

還是自動裝箱拆箱

public class BoxDemo{     public static void main(String[] args){      Integer data1 = 500;      Integer data2 = 500;      System.out.println(data1==data2);     }  }

在你看到接下來的運(yùn)行結(jié)果前,您先猜猜看,運(yùn)行的結(jié)果會是怎樣的呢?true or false?

Java的自動裝箱和拆箱的概念
圖1-2 BoxDemo運(yùn)行結(jié)果

false?沒錯,它就是false,自動裝箱時,對于值從-128-127之間的數(shù),被裝箱后,會被放在內(nèi)存中進(jìn)行重用,

如果超出了這個值的范圍就不會被重用的,所以每次new出來的都是一個新的對象,結(jié)果自然會是false。

在這里,區(qū)別一個概念“==”和equals()   “==”是比較兩個對象是不是引用自同一個對象。   “equals()”是比較兩個對象的內(nèi)容。  這個一定得搞清楚,否則,在遇到問題的時候,可真是會讓人抓狂的。

到此,相信大家對“Java的自動裝箱和拆箱的概念”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:Java的自動裝箱和拆箱的概念
網(wǎng)頁網(wǎng)址:http://www.rwnh.cn/article48/peddep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號、網(wǎng)站策劃、軟件開發(fā)、電子商務(wù)、外貿(mào)建站、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
白山市| 隆尧县| 永修县| 望都县| 桦川县| 永济市| 启东市| 抚顺县| 新干县| 绥江县| 旬邑县| 会泽县| 桐梓县| 清徐县| 宁安市| 定安县| 黄山市| 湟源县| 剑河县| 唐海县| 丰城市| 林州市| 台南县| 兖州市| 丰城市| 古浪县| 禹州市| 漯河市| 榆树市| 定陶县| 甘南县| 夏河县| 射阳县| 东城区| 东光县| 西充县| 泾源县| 延吉市| 乌拉特前旗| 大邑县| 合阳县|