About JAVA ,You Should Know-程序员的自我修养



      从java jdk Alpha and Beta 到Java SE 10;从1998年的JPE(Java Professional Edition)开始到2014年推出的Java EE8,经过了漫长的发展与完善,java在程序开发中逐步奠定自己平台的王国。对于一个java企业开发人员而言,每个版本涌现的新技术是我们必须了解的。下面从J2SE和J2EE两个版本分别总结一下各自的迭代历程。【部分翻译自java 官网和相关技术文章】在此之前介绍一个概念,JSR

     JSR是Java Specification Requests的缩写,意思是Java 规范提案。是指向JCP(Java Community Process)提出新增一个标准化技术规范的正式请求。任何人都可以提交JSR,以向Java平台增添新的API和服务。JSR已成为Java界的一个重要标准,每次java 版本更新都会根据不同的JSR提出的标准进行展开。 

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模型的优化,这些都是每个版本的亮点所在。作为靠着个混口饭吃的人而言,不用是可惜,不知道是可笑。更何况还致力于这个领域希望有所建树呢。

你可能感兴趣的:(【项目总结】,java入门到精通)