jdk5新特性

自动装箱与拆箱

// 自动装箱:值转对象
Integer n = 1;
// 自动拆箱:对象转值
int m = n;
自动拆箱时小心NPE。

静态导入
import static java.util.Collections.addAll;
可变参数
public void method(Object... args) {}
写工具方法时更加容易,如:
public static booleanjava.util.Collections.addAll(Collection c, T... elements)
Introspector 文档参考
BeanInfo info = Introspector.getBeanInfo(Xyz.class); // BeanInfo包含:BeanDescriptor, PropertyDescriptor, MethodDescriptor等
我用的不多,有印象的只有PropertyDescriptor中的getReadMethod和getWriteMethod,绝大多数时是直接用反射。可以看看spring中的使用
范型
public class ArrayList extends AbstractList
基本功,在框架和工具方法中经常使用。
List
List
List
for-each
List list = new ArrayList();
for (T ele : list) {
...
}
注解 Annotation 提供了强大的元数据能力,在编译时、文档、运行时提供了强大的支持,如今在各种框架中都有其深度的使用。
协变返回类型
@Override子类覆盖方法时返回的类型可以是父类返回类型的子类型
abstract class Parent {
abstract Object getValue();
}
class Child extends Parent {
@Override
public ArrayList getValue() {
return null;
}
}
枚举
enum Type {
TYPE1, TYPE2
}
【jdk5新特性】最佳实践:在分布式系统中不使用枚举。一不用枚举一样能实现业务目标、二分布式系统中枚举容易成坑。

    推荐阅读