1. 程式人生 > >基本型別和引用型別比較的坑

基本型別和引用型別比較的坑

     java數值型別分為基本型別和引用型別,這裡以int和Integer型別為例,分析一下在開發過程中遇到的坑

並給出瞭如何規避的方案, 在很多開發場景中我們一般會將入參設定為引用型別譬如Integer,在方法內部可

能會出現比較情況,譬如一個代表order_type的欄位,可能會和我們定義的若干個常量比較,這樣如果定義的

常量也是Integer,就有可能產生bug,根源是Integer變數的儲存的是對應數值的引用,所以兩個代表相同資料的

變數可能引用並不一致,所以導致無法匹配,下面舉個例子 

	      //超出快取範圍(-128 ~ 127), 這個如何解決呢,使用equals方法
		Integer i = 1000;
		Integer j = 1000;
		System.out.println(i == j);
		//一個基本型別一個引用型別  == 判斷是按照基本型別的進行轉換判定
                int i1 = 1000;
		Integer j1 = 1000;
		System.out.println(j1==i1);
               //快取範圍(-128 ~ 127)
                Integer i2 = 100;
                Integer j2 = 100;
                System.out.println(i2==j2);

結果 : false true true

結果的原因我寫註釋了,不再深述,只是單獨列出來,開發一定注意細節和底層實現原理