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

Integer和int的區(qū)別實例詳解

 更新時間:2021年03月01日 17:01:26   作者:smart_1234  
這篇文章主要介紹了Integer和int的區(qū)別實例詳解,文字和代碼實例講解的很清楚,有感興趣的同學可以學習下

Integer和int最本質(zhì)的區(qū)別就是:Integer是封裝類,int是基本數(shù)據(jù)類型(這是廢話)。

本文是希望能對Integer和int的區(qū)別進行更詳細的對比說明并加以舉例

Integer和int的區(qū)別

  • Integer的默認初始值是null,而int的初始值是int,也就是說Integer能夠區(qū)分出未賦值和值為0的區(qū)別,而int卻不能表達出未賦值的情況,所以int不適合作為web層的表單數(shù)據(jù)填寫。(例如:一個學生參加考試且成績?yōu)?,和沒參加考試成績?yōu)閚ull)
  • Integer是類,自帶很多方法供使用,而int只能做一些基本的±*/=的操作
  • Integer變量必須先實例化,int變量直接使用

關于Integer

在說明Integer的時候有幾個小知識點提一下:

  • 拆箱和裝箱
  • 什么時候拆箱:基本數(shù)據(jù)類型和引用數(shù)據(jù)類型做運算時什么時候裝箱:基本數(shù)據(jù)類型賦值給引用數(shù)據(jù)類型時
  • “==”和“equals()”
  • “==”:在比較基本數(shù)據(jù)類型時比較的是數(shù)值,比較引用數(shù)據(jù)類型時比較的是對象堆內(nèi)存地址equals():在Object類中是通過“==”來比較的,但大多時候,我們會將其進行重寫
  • 在Integer類中,“==”用來比較對象地址是否相同,而equals()被重寫,他會先判斷參數(shù)中對象是否為Integer類型,如果是則判斷值是否相同。
 public boolean equals(Object obj) {
  if (obj instanceof Integer) {
   return value == ((Integer)obj).intValue();
  }
  return false;
 }

幾點說明

  • Integer變量和int變量比較值時,只要值是相等的,結果就為true(因為Java會自動拆箱,將Integer拆為int,在進行比較)
Integer a = new Integer(1);
int b = 1;
System.out.println(a == b);//true

兩個通過new生成的Integer變量是永遠不相等的(因為new生成的是兩個新對象,內(nèi)存地址不同)

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

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

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

兩個非new產(chǎn)生的Integer變量比較:當值在-128~127之間時,結果為true,當值在此區(qū)間外結果為false(因為Integer常量池的存儲范圍是[-128,127],在此范圍內(nèi)是直接存儲于常量池的,都指向同一個地址。在此范圍外的數(shù)需要通過堆內(nèi)存創(chuàng)建一個新對象。比如Integer a=1會將1寫入緩存中,下次再寫Integer b=1時會直接從緩存中去,不用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

到此這篇關于Integer和int的區(qū)別實例詳解的文章就介紹到這了,更多相關Integer和int的區(qū)別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java容器類的深入理解

    Java容器類的深入理解

    本篇文章是對Java容器類進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • 詳解Java中接口的定義與實例代碼

    詳解Java中接口的定義與實例代碼

    這篇文章主要介紹了詳解Java中接口的定義與實例代碼的相關資料,需要的朋友可以參考下
    2017-03-03
  • Springboot使用Junit測試沒有插入數(shù)據(jù)的原因

    Springboot使用Junit測試沒有插入數(shù)據(jù)的原因

    這篇文章主要介紹了Springboot使用Junit測試沒有插入數(shù)據(jù)的原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Java?split方法使用超詳細講解

    Java?split方法使用超詳細講解

    這篇文章主要給大家介紹了關于Java?split方法使用的相關資料,Java中的我們可以利用split把字符串按照指定的分割符進行分割,然后返回字符串數(shù)組,需要的朋友可以參考下
    2023-10-10
  • Java高頻面試題之海量數(shù)據(jù)處理分析

    Java高頻面試題之海量數(shù)據(jù)處理分析

    海量信息處理日益成為當前程序員筆試面試中一個新的亮點。硬件擴容是難滿足海量數(shù)據(jù)處理需要的,如何利用現(xiàn)有條件進行海量信息處理?本文就來為大家解答一下
    2022-10-10
  • SpringBoot錯誤處理機制以及自定義異常處理詳解

    SpringBoot錯誤處理機制以及自定義異常處理詳解

    這篇文章主要為大家詳細介紹了SpringBoot錯誤處理機制以及自定義異常處理,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-05-05
  • MyBatis特殊SQL的執(zhí)行實例代碼

    MyBatis特殊SQL的執(zhí)行實例代碼

    這篇文章主要給大家介紹了關于MyBatis特殊SQL執(zhí)行的相關資料,文中通過實例代碼和圖文介紹的非常詳細,對大家學習或者使用MyBatis具有一定的參考學習價值,需要的朋友可以參考下
    2023-01-01
  • 最新評論