==和equal
== 比較的是地址,對基本類型和引用類型都可以用
equal比較的是字面量,只對引用類型可用
對於String要注意編譯時常量池,即在運行前能確定值的字符串會被存進常量池,
String s1 = "s";String s2 = "s";
則s1 == s2和s1.equal(s2)都是true,因爲s1,s2指向常量池中相同的地址
String s = new String("sss");
String d = new String("sss");
s == d;//false
s.equal(d);//true
對於Integer在-128到127的值會被緩存到常量池
Integer i1 =127;
Integer i2 = 127;
Integer i5 = 128;
Integer i6 = 128;
i1 == i2;//true
i3 == i4;//false