jdk1.2开始将java技术体系分为3个方向(j2se、j2ee、j2me),并存3个虚拟机(Classic VM、Hot Spot VM、Exat VM,后两个内置JIT编译器,Hot Spot 后作为jdk1.3默认虚拟机),添加strictft关键字以及Collections集合类
jdk1.3主要改进一些类库(如数学运算符和新的Timer API 等),JNDI服务开始被作为一项平台级服务提供(之前为扩展),使用CORBA IIOP来实现RMI的通讯协议等等。还对java 2D做了很多改进,提供了大量新的java 2D API,新增了JavaSound类库。
jdk1.4开始出现正则表达式、异常链、NIO、日志类、XML解析器和XSLT转换器,等等。一些框架能直接运行在1.4之上,如Spring、Hibernate、Struts等。
jdk5在语法易用性上作出了非常大的改进。自动装箱、泛型、动态注解、枚举、可变长参数、便利循环(foreach循环)等。在虚拟机和API层面,改进了java的内存模型(Java Memory Model,JMM)、提供了java.util.concurrent并发包等。
jdk6终结了从jdk1.2开始的j2ee、j2se、j2me的命名方式,启用java se6、java ee6、java me 6的命名来代替。它的改进包括:提供动态语言支持(通过内置Mozilla JavaScript Rhino引擎实现)、提供编译API和微型HTTP服务器API,等等。这个版本对java虚拟机的内部做了大量改进,包括锁与同步、垃圾收集、类加载等方面的算法都有相当多的改动。
jdk7的主要改进包括:提供新的G1收集器、加强对非java语言的调用、语言级的模块化支持(取决于Jigsaw项目能不能完成)、升级类加载架构,等等