Integer和int使用解惑

2021-08-26 22:39:48 字數 753 閱讀 9992

前幾天群裡,大家對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...