代碼:
package cn.lut.test;
public class SameTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
Integer a=new Integer(1);
Integer b=1;
int c=1;
System.out.println(a==b);
System.out.println(a==c);
System.out.println(b==c);
}
}
輸出結果:
false
true
true
疑惑:有程序運行結果可得a和c地址相同,b和c地址相同,不是可以退出a和b相同嗎?Integer a=1和int a=1有什麼區別?
補充:不理解的地方是為什麼a和c相同。
1、基本數據類型,也稱原始數據類型。byte,short,char,int,long,float,double,boolean。他們之間的比較,應用雙等號(==),比較的是他們的值。
2、復合數據類型(類) ,當他們用(==)進行比較的時候,比較的是他們在內存中的存放地址,所以,除非是同一個new出來的對象,他們的比較後的結果為true,否則比較後結果為false。
3、int 是基本數據類型,Integer是其包裝類,注意是一個類。