分享JDK各版本的特性介绍(1.5-1.8)

jdk1.5

1.自动装箱与拆箱(享元设计模式)
2.类型安全枚举(参看)
3.静态导入 (参看)
4.可变参数(Varargs)(参看)
5.内省(Introspector)(参看)
6.泛型(Generic) (参看)
7.For-Each循环
8.元数据(注解)(参看)

jdk1.6

1.Web服务元数据(参看)
2.脚本语言支持 (参看)
3.JTable的排序和过滤(完整代码示例)
4.更简单,更强大的JAX-WS (参看)
5.轻量级Http Server (参看)
6.嵌入式数据库 Derby (参看)

jdk1.7

1.switch中可以使用字串了。

2.运用List tempList = new ArrayList<>(); 即泛型实例化类型自动推断。

3.自定义自动关闭类
以下是jdk7 api中的接口,(不过注释太长,删掉了close()方法的一部分注释)

/**
 * A resource that must be closed when it is no longer needed.
 *
 * @author Josh Bloch
 * @since 1.7
 */
public interface AutoCloseable {
    /**
     * Closes this resource, relinquishing any underlying resources.
     * This method is invoked automatically on objects managed by the
     * {@code try}-with-resources statement.
     *
     */
    void close() throws Exception;
}

只要实现该接口,在该类对象销毁时自动调用close方法,你可以在close方法关闭你想关闭的资源,例子如下

class TryClose implements AutoCloseable {

 @Override
 public void close() throw Exception {
  System.out.println(" Custom close method …
                                         close resources ");
 }
}
//请看jdk自带类BufferedReader如何实现close方法(当然还有很多类似类型的类)

  public void close() throws IOException {
        synchronized (lock) {
            if (in == null)
                return;
            in.close();
            in = null;
            cb = null;
        }
    }

4.数字字面量下划线支持
例如:int one_million = 1_000_000;

5.二进制字面量
例如:int binary = 0b1001_1001;

6.Swing组件增强(JLayer,Nimbus Look Feel...)(参看)
7.捕获多个异常类型和重新抛出异常与改进类型检查

  • jdk7之前:
try {
   ......
} catch(ClassNotFoundException ex) {
   ex.printStackTrace();
} catch(SQLException ex) {
   ex.printStackTrace();
}
  • jdk7例子如下
try { 
......
} catch(ClassNotFoundException|SQLException ex){ 

    ex.printStackTrace();
}

8.改进的编译器警告和错误使用可变参数方法的非Reifiable形式参数
当程序员试图使用一个不可具体化的可变参数并调用一个varargs (可变)方法时,编辑器会生成一个“非安全操作”的警告。

9.java2D的增强(参看)

jdk1.8

  1. 允许在接口中有默认方法实现(参看)
  2. Lambda表达式(参看)
  3. 函数式接口(参看)
  4. 方法和构造函数引用(参看)
  5. Lambda的范围(参看)
  6. 内置函数式接口(参看)
  7. Streams
    在新的类java.util.stream
    包提供了一个流API来支持函数式的运算元素的流。
    该流API被集成到集合API,它使上集合批量操作,例如连续或平行地图,减少变换。
  8. Parallel Streams
    流操作可以是顺序的,也可以是并行的。顺序操作通过单线程执行,而并行操作则通过多线程执行。
    并行操作提高运行效率。
  9. Map(参看)
    map是不支持流操作的。而更新后的map现在则支持多种实用的新方法,来完成常规的任务。
  10. 时间日期API(参看)
  11. Annotations(参看)

以上资料还不齐全,持续更新

你可能感兴趣的:(分享JDK各版本的特性介绍(1.5-1.8))