基礎資料int與包裝類Integer使用總結

2021-10-16 11:18:37 字數 1947 閱讀 4683

預設值 : int = 0 ,integer = null

範圍:兩者均為 -231 ~ 231-1 (-2147483648 ~ 2147483647)

相等int == int: 基本比較使用 ==

int == integer: integer 缺省會拆包成基礎資料,對兩者數值進行比較,但是integer 如果為 null ,則會丟擲nullpointerexception

int a;

integer b;

a == b //throw nullpointerexception

int a =0;

integer b =

0 a == b // true

int a =

129;

integer b =

129 a == b // true

integer == integer: 包裝模擬較,由於integer的取值在-128 ~ 127之間,則直接從常量快取池中獲取數值,所以兩個數值相等且在-128 ~ 127之間時返回true;但是不在這個範圍,則會建立了新的integer物件,所以兩個物件是不相等的;包裝模擬較相等推薦採用equels,即

integer a;

integer b;

//null 比較

a == b //true

a.equals

(b)//throw nullpointerexception

integer a =1;

integer b =1;

a == b // true

a.equals

(b)// true

integer a =

128;

integer b =

128;

a == b // false

a.equals

(b)// true

大小

int <-> int: 基本比較

int <-> integer: 使用基本比較 > 大於、< 小於 ,>= 大於等於 , <= 小於等於;

會將integer拆包為int (為null時丟擲nullpointerexception)進行比較

integer<-> integer

/* 

compareto 具體實現邏輯 (x,y

x : 呼叫者的值

y : 傳入比較者的值

呼叫者小於比較者 返回 -1

相等 返回 0

呼叫者大於比較者 返回 1

*/public

static

intcompare

(int x,

int y)

integer a =

129;

integer b =

null

;a >= b //throw nullpointerexception

a.compareto

(b)// throw nullpointerexception

integer a =

129;

integer b =

-127

a > b //true

a.compareto

(b)// 1

a > b 等價於 (a.

compareto

(b)==

1 或 a.

compareto

(b)>

0)

關於基本型別int與包裝類integer的面試內容

首先integer是int的包裝類,然後int的預設值是0,並且int不能為null,而integer的預設值為null,即integer可以區分出為賦值和值為0的區別,例如 區分未參加考試和參加考試的零分。另外integer提供了多個與整數操作的方法,如將字串轉化為整數 integer.pasei...

Java基礎 包裝類

包裝類 為什麼要用包裝類,因為八大基本資料型別有的時候需要轉換成物件才能使用,比如在容器中。基本資料型別對應的包裝類 byte byte short short int integer long long float float double double char charactor boolea...

java 基礎 之 包裝類

jdk 1.5 之後提供了自動裝箱與拆箱的功能 自動拆箱 除了自動裝箱與自動拆箱以外.包裝類還可以與string 進行相互轉換 jdk 1.7 版本之後又給所有的包裝類新增了乙個 compare 方法.用於比較兩個引數的大小 jdk 17 除了compare之外,還給character 增加了大量的...