真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Integer與int有什么區(qū)別-創(chuàng)新互聯(lián)

Integer與int有什么區(qū)別?針對(duì)這個(gè)問題,這篇文章詳細(xì)介紹了相對(duì)應(yīng)的分析和解答,希望可以幫助更多想解決這個(gè)問題的小伙伴找到更簡(jiǎn)單易行的方法。

成都創(chuàng)新互聯(lián)公司是專業(yè)的淇濱網(wǎng)站建設(shè)公司,淇濱接單;提供成都網(wǎng)站建設(shè)、成都做網(wǎng)站,網(wǎng)頁設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行淇濱網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!

Integer和int的區(qū)別


  • Integer的默認(rèn)初始值是null,而int的初始值是int,也就是說Integer能夠區(qū)分出未賦值和值為0的區(qū)別,而int卻不能表達(dá)出未賦值的情況,所以int不適合作為web層的表單數(shù)據(jù)填寫。(例如:一個(gè)學(xué)生參加考試且成績?yōu)?,和沒參加考試成績?yōu)閚ull)

  • Integer是類,自帶很多方法供使用,而int只能做一些基本的±*/=的操作

  • Integer變量必須先實(shí)例化,int變量直接使用

關(guān)于Integer

在說明Integer的時(shí)候有幾個(gè)小知識(shí)點(diǎn)提一下:

  • 拆箱和裝箱

  • 什么時(shí)候拆箱:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型做運(yùn)算時(shí)什么時(shí)候裝箱:基本數(shù)據(jù)類型賦值給引用數(shù)據(jù)類型時(shí)

  • “==”和“equals()”

  • “==”:在比較基本數(shù)據(jù)類型時(shí)比較的是數(shù)值,比較引用數(shù)據(jù)類型時(shí)比較的是對(duì)象堆內(nèi)存地址equals():在Object類中是通過“==”來比較的,但大多時(shí)候,我們會(huì)將其進(jìn)行重寫

  • 在Integer類中,“==”用來比較對(duì)象地址是否相同,而equals()被重寫,他會(huì)先判斷參數(shù)中對(duì)象是否為Integer類型,如果是則判斷值是否相同。

 public boolean equals(Object obj) {
    if (obj instanceof Integer) {
      return value == ((Integer)obj).intValue();
    }
    return false;
  }

幾點(diǎn)說明

  • Integer變量和int變量比較值時(shí),只要值是相等的,結(jié)果就為true(因?yàn)镴ava會(huì)自動(dòng)拆箱,將Integer拆為int,在進(jìn)行比較)

Integer a = new Integer(1);
int b = 1;
System.out.println(a == b);//true

兩個(gè)通過new生成的Integer變量是永遠(yuǎn)不相等的(因?yàn)閚ew生成的是兩個(gè)新對(duì)象,內(nèi)存地址不同)

Integer a = new Integer(1);
Integer b = new Integer(1);
System.out.println(a == b);//false

兩個(gè)通過非new產(chǎn)生的Integer變量也是不相等的(因?yàn)榉莕ew產(chǎn)生的Integer變量指向Java常量池中的對(duì)象,而new產(chǎn)生的變量指向堆中新建對(duì)象,他倆所在的內(nèi)存地址不同)

Integer a = new Integer(1);
Integer b = 1;
System.out.println(a == b);//false

兩個(gè)非new產(chǎn)生的Integer變量比較:當(dāng)值在-128~127之間時(shí),結(jié)果為true,當(dāng)值在此區(qū)間外結(jié)果為false(因?yàn)镮nteger常量池的存儲(chǔ)范圍是[-128,127],在此范圍內(nèi)是直接存儲(chǔ)于常量池的,都指向同一個(gè)地址。在此范圍外的數(shù)需要通過堆內(nèi)存創(chuàng)建一個(gè)新對(duì)象。比如Integer a=1會(huì)將1寫入緩存中,下次再寫Integer b=1時(shí)會(huì)直接從緩存中去,不用new了,所以取到的地址也是相同的)

Integer a = 1;
Integer b = 1;
System.out.println(a == b);//true

Integer a = 129;
Integer b = 129;
System.out.println(a == b);//false

關(guān)于Integer與int有什么區(qū)別問題的解答就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關(guān)知識(shí)。


網(wǎng)頁名稱:Integer與int有什么區(qū)別-創(chuàng)新互聯(lián)
文章起源:http://weahome.cn/article/hhchi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部