enum:
构造和接口
public interface B {public void B_B();}
public enum A implements B {
A_A(0),
A_B(0),
A_C(0);
private int num;
A(int num) {
this.num = num;
}
public void B_B(){}
}
value-specific:
public enum A {
A_A{ public void perform(int num) {out.println(num + "A_A")} },
A_B{ public void perform(int num) {out.println(num + "A_B")} },
A_C{ public void perform(int num) {out.println(num + "A_C")} };
public abstract void perform(int num);
}
boxing and unboxing:
1. This code will throw a NullPointerException:
Integer i = null;
int j = i;
2. 特定primitive一定会被box成immutable wapper对象:
true和false
byte值:-128—127的short和int
char:/u0000—/u007F
例如:
Integer i1 = 256;
Integer i2 = 256;
i1 == i2 为false.
但
Integer i1 = 100;
Integer i2 = 100;
i1 == i2 为true
3. ?操作符:
String s = "hello";
StringBuffer ss = new StringBuffer("world");
boolean mutable = true;
CharSequence cs = mutable ? s : ss;
?能返回两个操作数的交集类,任何两个对象都可以赋值给Object
4. method解析:
先使用没有boxing的但使用vararg的method匹配,再用有boxing但没有vararg的匹配,最后使用boxing和vararg