預設值 : 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 增加了大量的...