int和Integer有什么区别?
可參考:http://www.cnblogs.com/liuling/archive/2013/05/05/intAndInteger.html
?
從Java 5開始引入了自動(dòng)裝箱/拆箱機(jī)制,使得二者可以相互轉(zhuǎn)換
Integer和int比都會(huì)自動(dòng)拆箱(jdk1.5以上)。拆箱--->從Integer轉(zhuǎn)為int;裝箱指的是從int-->Integer
Integer i5 = 127;//java在編譯的時(shí)候,被翻譯成-> Integer i5 = Integer.valueOf(127);
?
? ①無論如何,Integer與new Integer不會(huì)相等。不會(huì)經(jīng)歷拆箱過程,引用指向堆的和指向常量池的內(nèi)存地址不同,所以必然為false;
??②兩個(gè)都是非new出來的Integer,如果數(shù)在-128到127之間,則是true,否則為false
??java在編譯Integer i2 = 128的時(shí)候,被翻譯成-> Integer i2 = Integer.valueOf(128);而valueOf()函數(shù)會(huì)對(duì)-128到127之間的數(shù)進(jìn)行緩存
??③兩個(gè)都是new出來的,都為false
??④int和integer(無論new否)比,都為true,因?yàn)闀?huì)把Integer自動(dòng)拆箱為int再去比
轉(zhuǎn)載于:https://www.cnblogs.com/YLQBL/p/6944933.html
總結(jié)
以上是生活随笔為你收集整理的int和Integer有什么区别?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OAuth 2.0系列教程(八) 授权码
- 下一篇: Excel 【小型成绩分析系统初稿】(功