亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Integer和int的區(qū)別實(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ù)類型(這是廢話)。

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

Integer和int的區(qū)別

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

關(guān)于Integer

在說明Integer的時候有幾個小知識點(diǎn)提一下:

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

幾點(diǎn)說明

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

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

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

兩個通過非new產(chǎn)生的Integer變量也是不相等的(因?yàn)榉莕ew產(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變量比較:當(dāng)值在-128~127之間時,結(jié)果為true,當(dāng)值在此區(qū)間外結(jié)果為false(因?yàn)镮nteger常量池的存儲范圍是[-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

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

相關(guān)文章

  • Java容器類的深入理解

    Java容器類的深入理解

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

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

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

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

    這篇文章主要介紹了Springboot使用Junit測試沒有插入數(shù)據(jù)的原因,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    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)前程序員筆試面試中一個新的亮點(diǎn)。硬件擴(kuò)容是難滿足海量數(shù)據(jù)處理需要的,如何利用現(xiàn)有條件進(jìn)行海量信息處理?本文就來為大家解答一下
    2022-10-10
  • SpringBoot錯誤處理機(jī)制以及自定義異常處理詳解

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

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

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

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