久久久精品一区ed2k-女人被男人叉到高潮的视频-中文字幕乱码一区久久麻豆樱花-俄罗斯熟妇真实视频

java中int和Integer的區(qū)別是什么

這篇文章給大家介紹java中int和Integer的區(qū)別是什么,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

專(zhuān)注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站制作服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)嘉興免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

1、Integer是int的包裝類(lèi),int則是java的一種基本數(shù)據(jù)類(lèi)型

2、Integer變量必須實(shí)例化(new 一下是最常見(jiàn)的實(shí)例化)后才能使用,而int變量不需要

3、Integer實(shí)際是對(duì)象的引用,new Integer(),實(shí)際上是生成一個(gè)指針指向此對(duì)象;而int則是直接存儲(chǔ)數(shù)據(jù)值

4、Integer的默認(rèn)值是null,int的默認(rèn)值是0

注意

Integer對(duì)象會(huì)占用更多的內(nèi)存。Integer是一個(gè)對(duì)象,需要存儲(chǔ)對(duì)象的元數(shù)據(jù)。但是int是一個(gè)原始類(lèi)型的數(shù)據(jù),所以占用的空間更少

關(guān)于Integer和int的比較

1. 兩個(gè)new實(shí)例化出來(lái)的Integer變量比較,結(jié)果為false.

/**
 * @author tracydzf
 *比較兩個(gè)new出來(lái)的Integer
 *
 */
public class Test {

  public static void main(String[] args) {
    Integer a = new Integer(100);
    Integer b = new Integer(100);
    System.out.println(a==b);
    //輸出false    
  }
}

當(dāng)new一個(gè)Integer時(shí),實(shí)際上是生成一個(gè)指針,指向此對(duì)象,兩次new Integer生成的是兩個(gè)對(duì)象,對(duì)象儲(chǔ)存在堆當(dāng)中,其內(nèi)存地址不同,所以?xún)蓚€(gè)new出來(lái)的Integer變量不等。

2.int 和Integer在進(jìn)行比較的時(shí)候,Integer會(huì)進(jìn)行拆箱,轉(zhuǎn)為int值與int進(jìn)行比較

/**
 * @author tracydzf
 *int 和 Integer的比較
 *
 */

public class Test {

  public static void main(String[] args) {
    Integer a = new Integer(100);
    int b = 100;
    System.out.print(a == b); //true  
  }
}

3.非new生成的Integer變量和new Integer()生成的變量比較時(shí),結(jié)果為false。(因?yàn)榉莕ew生成的Integer變量指向的是java常量池中的對(duì)象,而new Integer()生成的變量指向堆中新建的對(duì)象,兩者在內(nèi)存中的地址不同)

/**
 * @author tracydzf
 * Integer 和 new Integer的比較
 *
 */
public class Test {

  public static void main(String[] args) {
    Integer a = new Integer(100);
    Integer b = 100;
    System.out.print(a == b); //false  
  }
}

4.對(duì)于兩個(gè)非new生成的Integer對(duì)象,進(jìn)行比較時(shí).

注意:

① java在編譯Integer i = 100 ;時(shí),會(huì)翻譯成為Integer i = Integer.valueOf(100),java API中對(duì)Integer類(lèi)型的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);
}

② 當(dāng)自動(dòng)裝箱后生成的Integer的對(duì)象,其值 -128<= x <= 127 時(shí),這個(gè)對(duì)象會(huì)直接取緩存IntegerCache中的對(duì)應(yīng)的對(duì)象,生成的當(dāng)然也是個(gè)對(duì)象。

我們來(lái)看看例子

這里a跟b都是128,不會(huì)再I(mǎi)ntegerCache取緩存對(duì)象,所以是false.

/**
 * @author tracydzf
 * Integer 和 Integer的比較
 *
 */
public class Test {

  public static void main(String[] args) {
    Integer a = 128;
    Integer b = 128;
    System.out.print(a == b); //false  
  }
}

a,b都是127,數(shù)值相等,且滿(mǎn)足在IntegerCache取緩存的條件,所以對(duì)象相等.

/**
 * @author tracydzf
 * Integer 和 Integer的比較
 *
 */
public class Test {

  public static void main(String[] args) {
    Integer a = 127;
    Integer b = 127;
    System.out.print(a == b); //true
  }
}

關(guān)于java中int和Integer的區(qū)別是什么就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

網(wǎng)站標(biāo)題:java中int和Integer的區(qū)別是什么
標(biāo)題來(lái)源:http://sd-ha.com/article14/jjchde.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)ChatGPT標(biāo)簽優(yōu)化、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)企業(yè)建站、動(dòng)態(tài)網(wǎng)站

廣告

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

成都網(wǎng)頁(yè)設(shè)計(jì)公司