2018年3月12-2018-3月17
一、java中final关键字
http://www.importnew.com/7553.html
二、0x7FFFFFFF和hashCode
1、因为某些对象的hashCode可能会为负值,与0x7FFFFFFF进行与运算可以确保index为一个正数
/**
* Maps a long to an int with range of 0 to Integer.MAX_VALUE-1
*/
public static int idToIndex(long id) {
return 0x7FFFFFFF & Longs.hashCode(id) % 0x7FFFFFFE;
}
2018年3月19-2018-3月23
一、java中的打印格式,如s%,日期等
http://blog.csdn.net/lonely_fireworks/article/details/7962171
二、java中的泛型
http://www.runoob.com/java/java-generics.html
反泛型方法 1、普通的方法
public static < E > void printArray( E[] inputArray ){ }
2、有界的类型参数: 可能有时候,你会想限制那些被允许传递到一个类型参数的类型种类范围。例如,一个操作数字的方法可能只希望接受Number或者Number子类的实例。这就是有界类型参数的目的。 要声明一个有界的类型参数,首先列出类型参数的名称,后跟extends关键字,最后紧跟它的上界。
public static <T extends Comparable<T>> T maximum(T x, T y, T z) {}
3、类型通配符
类型通配符一般是使用?代替具体的类型参数。例如 List<?> 在逻辑上是List<String>,List<Integer> 等所有List<具体类型实参>的父类。
public static void getData(List<?> data) {
System.out.println("data :" + data.get(0));
}
public static void getUperNumber(List<? extends Number> data) {
System.out.println("data :" + data.get(0));
}
泛型类
public class Box<T> {}