前幾天群裡,大家對integer和int的區別,討論的火熱,最後以吵鬧結束!
先舉乙個例子:
public class test{ public static void main(string args){ integer in1 = new integer(10); integer in2 = new integer(10); system.out.println(in1==in2); system.out.println(in1>=in2); system.out.println(in1<=in2); system.out.println(in1>in2);
system.out.println(in1
執行結果:
false
true
true
false
false
從常理解釋(其實是錯誤的解釋):
in1>=in2 和 in1<=in2 同時成立true,則in1==in2 也應該返回true,但是in1==in2返回false,這是爭論的起點。
正確的解釋:
in1==in2 比較物件位址和物件的值, in1>=in2 和 in1<=in2 編譯時,自動呼叫了integer.intvalue(int i); 因此,它們其實比較的是基本資料型別int的值,因此很容易理解, in1>in2 和 in1下面是反編譯後的jvm指令作為實證:
Integer 和int的區別
1.int是基本的資料型別,直接存數值 2.integer是int的封裝類 integer 是物件,用乙個引用指向這個物件 integer 是乙個類,是int的擴充套件,定義了很多的轉換方法。3.int和integer都可以表示某乙個數值 4.int和integer不能夠互用,因為他們兩種不同的資料...
int和Integer的區別
今天有個學弟問了我乙個面試題 integer a 128 integer b 128 system.out.println a b 輸出什麼?為什麼?說來慚愧,我的直覺告訴我會輸出flase,但突然間還想不出來為什麼。所以寫了個例子研究了下 public static void main strin...
Integer和int的比較
package com.mawei.www public class integertest 和 equals的差異 private static void mytest01 確認有效範圍 private static void mytest02 混合比較 private static void m...