1.范型(Generics)
这个经过漫长等待后被加入到类型系统中的特性,允许一个类型或方法操作不同类型的对象,并提供编译期的类型安全。他加编译期类型安全到集合构架中,并且省去转换的工作。看Java学习指南中的Generics课程。(JSR 14)
2.增强的for循环(Enhanced for Loop)
这个新语言结构消除了在迭代集合和数组时,使用iterators和索引变量的潜在错误和转换工作。(JSR 201)
3.自动装箱和拆箱(Autoboxing/Unboxing)
这个便利工具消除了在简单类型(如,int)和包装类型(如,Integer)间手动转换的工作。(JSR 201)
4.类型安全的枚举(Typesafe Enums)
这个灵活的面向对象的枚举类型工具允许你创建包含任意方法和属性的枚举类型。他提供了类型安全枚举模式(Effective Java, Item 21)所有好处,并去除了冗长及可能潜在的错误。(JSR 201)
5.可变参数(Varargs)
当调用接收可变长变量的参数列表时,需要将参数列表组装成数组。这个便利工具消除了这些工作。
6.静态导入(Static Import)
这个便利工具使你避免用类名来限定静态元素,从而规避了"常量接口反模式"的缺点。(JSR 201)
7.注解(Annotations [Metadata])
这个语言特性,授权工具从源代码中的注解产生样板代码,让你在许多情况下避免写样板代码。这引导了出一种"声明式"编程方式,在这种方式中程序员告诉他应该如何被完成,由工具来生成代码并完成他。他同时也消除了将辅助文件与源代码文件保持同步更新的一些工作。替代的工作是这些信息可以被维护在源代码文件中。(JSR 175)
NOTE:@Deprecated注解提供了一种方式来标识不建议使用的程序元素。参见:什么情况下,怎么样来废弃APIs(How and When To Deprecate APIs)。