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