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

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

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

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

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

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

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

4、Integer的默認值是null,int的默認值是0

注意

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

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

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

/**
 * @author tracydzf
 *比較兩個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    
  }
}

當new一個Integer時,實際上是生成一個指針,指向此對象,兩次new Integer生成的是兩個對象,對象儲存在堆當中,其內(nèi)存地址不同,所以兩個new出來的Integer變量不等。

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

/**
 * @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()生成的變量比較時,結(jié)果為false。(因為非new生成的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.對于兩個非new生成的Integer對象,進行比較時.

注意:

① java在編譯Integer i = 100 ;時,會翻譯成為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);
}

② 當自動裝箱后生成的Integer的對象,其值 -128<= x <= 127 時,這個對象會直接取緩存IntegerCache中的對應的對象,生成的當然也是個對象。

我們來看看例子

這里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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 分享java中設置代理的兩種方式

    分享java中設置代理的兩種方式

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

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

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

    Java8使用LocalDate計算日期實例代碼解析

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

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

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

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

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

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

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

    Spring Cloud Stream異常處理過程解析

    這篇文章主要介紹了Spring Cloud Stream異常處理過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • Springboot項目因為kackson版本問題啟動報錯解決方案

    Springboot項目因為kackson版本問題啟動報錯解決方案

    這篇文章主要介紹了Springboot項目因為kackson版本問題啟動報錯解決方案,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07
  • SpringBoot依賴注入的詳細介紹、使用技巧

    SpringBoot依賴注入的詳細介紹、使用技巧

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

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

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

最新評論