1、二进制表示
byte aByte = (byte)0b00100001;
short aShort = (short)0b1010000101000101;
int anInt2 = 0b101;
long aLong = 0b1010000101000101101000010100010110100001010001011010000101000101L;
int value = Integer.parseInt("00001110", 2) & (Integer.parseInt("00101110", 2) << amount);
2、switch对字符串的支持
GregorianCalendar c = new GregorianCalendar();
int monthNameToDays(String s, int year) {
switch (s) {
case "April":
case "June":
case "September":
case "November":
return 30;
case "January":
case "March":
case "May":
case "July":
case "August":
case "December":
return 31;
case "February":
int days = 28;
days += c.isLeapYear(year) ? 1 : 0;
return days;
default:
return -1;
}
}
3、泛型的形态推断
List<Method> methods = new ArrayList<>();
4、异常处理,一次能够catch多个Exception
public void singlecatch() throws ClassNotFoundException, InstantiationException, NoSuchMethodException, NoSuchFieldException, IllegalAccessException, InvocationTargetException {
try {
Class clazz = Class.forName("CoinByReflection");
Object instance = clazz.newInstance();
Field field = clazz.getField("code");
int code = field.getInt(instance);
System.out.println(code);
Method method = clazz.getMethod("printTheme");
method.invoke(instance);
} catch (final ClassNotFoundException|
InstantiationException |
NoSuchMethodException |
NoSuchFieldException |
IllegalAccessException |
InvocationTargetException
e){
log(e);
throw e;
}
}