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

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

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

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

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

Integer和int的區(qū)別

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

關(guān)于Integer

在說(shuō)明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類中是通過(guò)“==”來(lái)比較的,但大多時(shí)候,我們會(huì)將其進(jìn)行重寫
  • 在Integer類中,“==”用來(lái)比較對(duì)象地址是否相同,而equals()被重寫,他會(huì)先判斷參數(shù)中對(duì)象是否為Integer類型,如果是則判斷值是否相同。
 public boolean equals(Object obj) {
  if (obj instanceof Integer) {
   return value == ((Integer)obj).intValue();
  }
  return false;
 }

幾點(diǎn)說(shuō)明

  • 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è)通過(guò)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è)通過(guò)非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ù)需要通過(guò)堆內(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ū)別實(shí)例詳解的文章就介紹到這了,更多相關(guān)Integer和int的區(qū)別內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Java容器類的深入理解

    Java容器類的深入理解

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

    詳解Java中接口的定義與實(shí)例代碼

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

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

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

    Java?split方法使用超詳細(xì)講解

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

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

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

    SpringBoot錯(cuò)誤處理機(jī)制以及自定義異常處理詳解

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

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

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