**段:
integer i1 = integer.valueof(1);
integer i2 = new integer(1);
integer i3 = 1;
integer i4 = integer.valueof(500);
integer i5 = new integer(500);
integer i6 = 500;
system.out.println("integer:");
system.out.println(i1 == i2);
system.out.println(i2 == i3);
system.out.println(i1 == i3);
system.out.println(i1 == 1);
system.out.println(i2 == 1);
system.out.println(i3 == 1);
system.out.println(i4 == i5);
system.out.println(i4 == i6);
system.out.println(i5 == i6);
system.out.println(i4 == 500);
system.out.println(i5 == 500);
system.out.println(i6 == 500);
system.out.println("<<<<<<<<<<>>>>>>>>>>>>>");
long l1 = long.valueof(1);
long l2 = new long(1);
long l3 = 1l;
long l4 = long.valueof(500);
long l5 = new long(500);
long l6 = 500l;
system.out.println("long:");
system.out.println(l1 == l2);
system.out.println(l2 == l3);
system.out.println(l1 == l3);
system.out.println(l1 == 1l);
system.out.println(l2 == 1l);
system.out.println(l3 == 1l);
system.out.println(l4 == l5);
system.out.println(l4 == l6);
system.out.println(l5 == l6);
system.out.println(l4 == 500l);
system.out.println(l5 == 500l);
system.out.println(l6 == 500l);
結果:
integer:
false
false
true
true
true
true
false
false
false
true
true
true
<<<<<<<<<<>>>>>>>>>>>>>
long:
false
false
true
true
true
true
false
false
false
true
true
true
結論:
1、integer,long包裝類的物件池範圍在-128~127之間,而超出這個範圍的物件都會開闢自己的堆記憶體。
i1==i3為true,賦值都是從物件池內取的同一物件;
i4==i6為false,不同的堆記憶體位址。
2、不同整型包裝類物件間通過==比的都是堆記憶體位址,故而全是false;
3、整型包裝類和對應的整形值比較,包裝類會進行拆箱處理**為對應基本型別),最終比較的都是值,而非堆記憶體位址,故而都是true。
C 類模板在不同情況下的使用
4.類模板派生普通類 5.類模板派生類模板 6.類模板類內實現 7.類模板類外實現 8.模板類碰到友元函式 類模板和函式模板的定義和使用類似。有時,有兩個或多個類,其功能是相同的,僅僅是資料型別不同。類模板可以有預設引數,比如 template typename nametype,typename ...
synchronized在多執行緒情況下的使用
不同業務場景,有時會碰到大量資料的情況,在請求完資料後會通過model對映到對應的陣列或者字典中,從而對陣列進行操作,而多個執行緒同時對同一陣列進行取捨時內容就會出錯,為了避免這種情況可以使用 synchronized關鍵字來宣告來建立乙個互斥鎖,保證此時沒有其它執行緒對鎖定物件進行修改 synch...
在沒有x的情況下配置網路
一 ubuntu命令列修改網路配置方法 etc network inte ces 開啟後裡面可設定dhcp或手動設定靜態ip。前面auto eth0,讓網絡卡開機自動掛載.1.以dhcp方式配置網絡卡 編輯檔案 etc network inte ces sudo vi etc network int...