Java JDK1.5、1.6、1.7新特性整理
Java JDK1.5新特性
自动装箱、拆箱
Java JDK1.5引入了自动装箱和拆箱功能,即可以自动将基本类型和它们对应的包装类型进行转换。例如:
// 自动装箱
Integer i = 10;
// 自动拆箱
int j = i;
可变参数
Java JDK1.5引入了可变参数功能,即可以在方法中使用任意数量的参数。例如:
public void print(String... args) {
for(String arg: args) {
System.out.println(arg);
}
}
// 调用方法
print("Hello", "world", "!");
枚举类型
Java JDK1.5引入了枚举类型功能,即可以定义一组具有固定数量的常量。例如:
public enum Color {
RED,
GREEN,
BLUE
}
// 使用枚举类型常量
Color c = Color.RED;
Java JDK1.6新特性
集合框架增强
Java JDK1.6增强了集合框架,其中包括:
- 新增了
NavigableSet
和NavigableMap
接口,提供了更多的集合操作方法; - 新增了
ConcurrentSkipListSet
和ConcurrentSkipListMap
类,提供了线程安全的集合操作。
插入式注解处理API
Java JDK1.6引入了插入式注解处理API,即可以使用注解来生成一些额外的类或者代码。例如:
@AutoService(Processor.class)
public class MyProcessor extends AbstractProcessor {
// ...
}
// 使用插入式注解处理API
ServiceLoader.load(Processor.class).forEach(p -> p.process(annotations, roundEnv));
Java JDK1.7新特性
switch语句增强
Java JDK1.7增强了switch语句,可以使用字符串作为switch语句的判断条件。例如:
switch(str) {
case "A":
// ...
break;
case "B":
// ...
break;
default:
// ...
break;
}
try-with-resources语句
Java JDK1.7引入了try-with-resources语句,可以自动关闭实现了Closeable
和AutoCloseable
接口的资源。例如:
try (FileInputStream in = new FileInputStream("file.txt");
BufferedReader reader = new BufferedReader(new InputStreamReader(in))) {
// ...
} catch(IOException e) {
// ...
}
示例
示例1:使用自动装箱和拆箱功能
List<Integer> list = new ArrayList<>();
// 自动装箱
for(int i = 0; i < 5; i++) {
list.add(i);
}
// 自动拆箱
for(Integer j: list) {
System.out.println(j);
}
示例2:使用插入式注解处理API
定义一个注解:
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String value();
}
定义一个使用注解的类:
public class MyClass {
@MyAnnotation("hello")
public void sayHello() {
System.out.println("Hello");
}
}
定义一个注解处理器:
@AutoService(Processor.class)
public class MyProcessor extends AbstractProcessor {
// ...
}
在MyProcessor
中可以获取到MyAnnotation
注解,并可以根据注解自动生成一些代码。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java JDK1.5、1.6、1.7新特性整理 - Python技术站