欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

簡單了解java中int和Integer的區(qū)別

 更新時(shí)間:2019年10月30日 08:29:43   作者:熊貓的世界你不懂  
這篇文章主要介紹了簡單了解java中int和Integer的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

這篇文章主要介紹了簡單了解java中int和Integer的區(qū)別,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

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

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

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

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

注意

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

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

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

/**
 * @author tracydzf
 *比較兩個(gè)new出來的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è)指針,指向此對象,兩次new Integer生成的是兩個(gè)對象,對象儲存在堆當(dāng)中,其內(nèi)存地址不同,所以兩個(gè)new出來的Integer變量不等。

2.int 和Integer在進(jìn)行比較的時(shí)候,Integer會進(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常量池中的對象,而new Integer()生成的變量指向堆中新建的對象,兩者在內(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.對于兩個(gè)非new生成的Integer對象,進(jìn)行比較時(shí).

注意:

① java在編譯Integer i = 100 ;時(shí),會翻譯成為Integer i = Integer.valueOf(100),java API中對Integer類型的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)自動裝箱后生成的Integer的對象,其值 -128<= x <= 127 時(shí),這個(gè)對象會直接取緩存IntegerCache中的對應(yīng)的對象,生成的當(dāng)然也是個(gè)對象。

我們來看看例子

這里a跟b都是128,不會再IntegerCache取緩存對象,所以是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ù)值相等,且滿足在IntegerCache取緩存的條件,所以對象相等.

/**
 * @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
  }
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享java中設(shè)置代理的兩種方式

    分享java中設(shè)置代理的兩種方式

    有時(shí)候我們的程序中要提供可以使用代理訪問網(wǎng)絡(luò),代理的方式包括http、https、ftp、socks代理。比如在IE瀏覽器設(shè)置代理,這里簡單介紹下,需要的朋友可以參考下
    2015-12-12
  • Java?Bluetooth?藍(lán)牙通訊?BlueCove?掃描附近的藍(lán)牙設(shè)備(測試代碼)

    Java?Bluetooth?藍(lán)牙通訊?BlueCove?掃描附近的藍(lán)牙設(shè)備(測試代碼)

    BlueCove是一個(gè)開源的藍(lán)牙協(xié)議棧實(shí)現(xiàn),旨在為Java開發(fā)者提供一個(gè)全面的、易于使用的API,從而在應(yīng)用程序中實(shí)現(xiàn)藍(lán)牙功能,該項(xiàng)目支持多種操作系統(tǒng),這篇文章主要介紹了Java?Bluetooth?藍(lán)牙通訊?BlueCove?掃描附近的藍(lán)牙設(shè)備,需要的朋友可以參考下
    2025-01-01
  • Java8使用LocalDate計(jì)算日期實(shí)例代碼解析

    Java8使用LocalDate計(jì)算日期實(shí)例代碼解析

    這篇文章主要介紹了Java8使用LocalDate計(jì)算實(shí)例代碼解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04
  • springBoot系列常用注解(小結(jié))

    springBoot系列常用注解(小結(jié))

    這篇文章主要介紹了springBoot系列常用注解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Idea中SpringBoot多模塊項(xiàng)目的建立實(shí)現(xiàn)

    Idea中SpringBoot多模塊項(xiàng)目的建立實(shí)現(xiàn)

    這篇文章主要介紹了Idea中SpringBoot多模塊項(xiàng)目的建立實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • springboot中實(shí)現(xiàn)上傳文件的功能簡單示例

    springboot中實(shí)現(xiàn)上傳文件的功能簡單示例

    這篇文章主要給大家介紹了關(guān)于springboot中實(shí)現(xiàn)上傳文件功能的相關(guān)資料,在Spring Boot中實(shí)現(xiàn)文件上傳下載功能相對簡單,文中給出了代碼示例,需要的朋友可以參考下
    2023-09-09
  • Spring Cloud Stream異常處理過程解析

    Spring Cloud Stream異常處理過程解析

    這篇文章主要介紹了Spring Cloud Stream異常處理過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動報(bào)錯(cuò)解決方案

    Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動報(bào)錯(cuò)解決方案

    這篇文章主要介紹了Springboot項(xiàng)目因?yàn)閗ackson版本問題啟動報(bào)錯(cuò)解決方案,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot依賴注入的詳細(xì)介紹、使用技巧

    SpringBoot依賴注入的詳細(xì)介紹、使用技巧

    在Spring Boot中,依賴注入是一項(xiàng)關(guān)鍵的特性,它通過容器來管理和注入應(yīng)用程序中的各種組件,本文介紹SpringBoot依賴注入的詳細(xì)介紹、使用技巧,感興趣的朋友一起看看吧
    2024-01-01
  • Java中遍歷ConcurrentHashMap的四種方式詳解

    Java中遍歷ConcurrentHashMap的四種方式詳解

    這篇文章主要介紹了Java中遍歷ConcurrentHashMap的四種方式詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10

最新評論