J2SE Version History
1995年第一个java发布版JDK Alpha and Beta发布,经过jdk1.0,1.1直到1998年,规定以后的java版本均由“J2SE”(java 2平台,标准版)取代JDK,也将应用于不同范围场景的java区分为J2SE(标准版),J2EE(企业版)和J2ME(微型版)三个标准。
J2SE 5.0
j2se5.0在2004年发行,最初编号为1.5,在JSR176标准下达到“更好地反映J2SE的成熟性,稳定性,可扩展性和安全性”,增加了许多重要的新语言特点:
Generics:提供编译时(静态)类型安全的集合和消除最需要类型转换(类型转换)
注解支持:允许的语言结构,如类和方法被标记的附加数据,然后可以通过元数据了解公用事业处理
自动装箱/拆箱:自动转换之间的原始类型(如int)和原始的包装类(如整数)
枚举:enum关键字创建一个类型安全的、有序的值的列表(如day.monday,day.tuesday,等等);以前这只能通过非类型安全的整型常量或手动构造类(类型安全枚举模式)
增强for each循环:for循环语法扩展了一个数组或任何一个成员进行特殊的语法,如标准的Collection集合类
对java多线程程序执行语义的改进;
新的java内存模型解决复杂性、有效性问题等。
J2SE 6.0
2006年发布j2se 6.0版本,1.6.0。主要变化有:
1、脚本语言支持:脚本语言的紧密集成的通用API,并内置Mozilla JavaScript集成。
2、改进的Web Service 规范JAX-WS,Java API 对基于XML的Web Services的支持。
3、支持JDBC 4。
4、java编译器的API:一个API允许java程序选择和调用java编译器编程。
5、JVM的改进包括:同步和编译器的性能优化的新算法和升级现有的垃圾收集算法,和应用程序的启动性能。
J2SE 7.0
java 7是一个重大更新,在java 7的新增功能包括:
JVM支持动态语言,捕捉多个异常类型和积极改进的类型检查,并发实用程序,新的文件I/O库,添加多个文件的文件系统支持,文件元数据和符号链接。
椭圆曲线密码算法的库级支持等。
J2SE 8.0
java 8月18日2014日发布,工作特征是组织在JDK增强建议条款(作业输入外围服务)。其中最突出的就是1.8版本对Lambda表达式的语言级支持,也允许流元素功能类型的操作性能,如MapReduce启发转换收藏。
J2SE 9.0
Oracle预计在2016推出java 9,特性包括多字节堆更好的支持,更好的本地代码集成,和自校正的JVM中。
J2EE Version History
从1998年的第一个企业级java规范JPE发表以来,J2EE经过了1.2(1999年),1.3(2001年),1.4(2003年)到现在的J2EE8(2014)的迭代;下面以表格的形式描述J2EE每个版本的新增特色。
List of J2EE 1.2 specifications Developer's Guide. |
|
Technology |
Version |
JDBC Standard Extension API |
2.0 |
Java Naming and Directory Interface Specification (JNDI) |
1.2 |
RMI-IIOP |
1.1 |
Java Servlet |
2.2 |
JavaServer Pages (JSP) |
1.1 |
Enterprise JavaBeans (EJB) |
1.1 |
Java Message Service API (JMS) |
1.0 |
Java Transaction API (JTA) |
1.0 |
JavaMail API |
1.1 |
JavaBeans Activation Framework (JAF) |
1.0 |
List of J2EE 1.3 specifications developed |
|
Technology |
Version |
JDBC Extension |
2.0 |
Java Naming and Directory Interface Specification (JNDI) |
1.2 |
Java API for XML Processing (JAXP) |
1.1 |
Java Servlet |
2.3 |
JavaServer Pages (JSP) |
1.2 |
JavaServer Pages Standard Tag Library (JSTL) |
1.0 |
Enterprise JavaBeans (EJB) |
2.0 |
J2EE Connector Architecture |
1.0 |
Java Message Service API (JMS) |
1.0 |
Java Transaction API (JTA) |
1.0 |
JavaMail API |
1.2 |
JavaBeans Activation Framework (JAF) |
1.0 |
Java Authentication and Authorization Service (JAAS) |
1.0 |
List of J2EE 1.4 specifications developed |
||
Technology |
Version |
JSR |
Web Services Technologies: |
||
Web Services for J2EE 1.1 |
1.0 |
|
Java API for XML Processing (JAXP) |
1.2 |
|
Java API for XML-based RPC (JAX-RPC) |
1.1 |
|
Java API for XML Registries (JAXR) |
1.0 |
|
Web Application Technologies: |
||
Java Servlet |
2.4 |
JSR154 |
JavaServer Pages (JSP) |
2.0 |
JSR152 |
JavaServer Pages Standard Tag Library (JSTL) |
1.1 |
JSR52 |
JavaServer Faces (JSF) |
1.1 |
JSR127 |
Enterprise Application Technologies: |
||
Enterprise JavaBeans (EJB) |
2.1 |
JSR153 |
J2EE Connector Architecture |
1.5 |
JSR112 |
Java Message Service API (JMS) |
1.1 |
|
Java Transaction API (JTA) |
1.0 |
|
JavaMail API |
1.3 |
|
JavaBeans Activation Framework (JAF) |
1.0 |
|
Management and Security Technologies: |
||
Java Authorization Service Provider Contract for Containers (JACC) |
1.0 |
|
Java Management Extensions (JMX) |
1.2 |
|
Enterprise Edition Management API |
1.0 |
|
Enterprise Edition Deployment API |
1.1 |
|
从J2EE5(2006年)做了两件大事:
1、引入基于j2se 1.5,试图简化EJB的复杂度,升级为EJB2.0版本
2、提出JAX-WS(Java API for XML-Based Web Services )和SOAP相关支持API;
J2EE6(2009年)更是了不起,首先提出了web技术栈的理念,简言之,就是做一个web开发所需要的所有相关java技术,包括标准API、成品即可满足大级别Web应用需求的能力;我们所讲的全栈工程师的出师鼻祖就出于此。其次提出了JAX-RS:基于restful web service 的一套java API,同时将与Spring框架整合的DI、AOP等标准化。
J2EE7(2013年)主要为了迎合HTML5的风靡,添加了webSocket、json API;为Big Data需求提供了一系列批量应用程序解决方案。
J2EE8(2014年)主要聚焦于对HTML5和HTTP2.0的支持,JSON绑定API、action-based 的MVC框架来丰富基于组件的JSF;
Self-examination
对于J2SE 和J2EE不同版本的迭代,每次新的标准基于什么问题推出,致力于解决什么问题,对于一个高级java工程师而言,了解是必须的。尽管有些技术没有大量涉及,比如j2se 8中Lambda的支持,一些java jvm、java模型的优化,这些都是每个版本的亮点所在。作为靠着个混口饭吃的人而言,不用是可惜,不知道是可笑。更何况还致力于这个领域希望有所建树呢。