[深入理解Java虚拟机]走进Java之Java版本历史

来源:互联网 发布:mac怎么用键盘代替鼠标 编辑:程序博客网 时间:2024/06/07 03:06

JDK Alpha and Beta

1995年发布第一个测试版本

JDK 1.0

1996年1月23日,第一个版本发布。随后不久,第一个稳定版本JDK 1.0.2发布

JDK1.1

1997年2月19日,JDK1.1发布,主要特性如下:

  • 改进AWT
  • 支持内部类
  • 添加JavaBeans
  • 支持JDBC
  • 支持RMI
  • 提供运行时内省但不允许改变的反射机制
  • 虚拟机引入JIT编译器(非sun公司)
  • Internationalization、Unicode

J2SE 1.2

1998年12月8日,代号Playground(竞技场)的JDK1.2发布,主要特性如下:

  • 增加strictfp关键字
  • 核心类库集成Swing图形API
  • Sun公司虚拟机首次采用JIT编译器
  • 提供Java plug-in插件,解决applet在浏览器的运行问题
  • 提供Java IDL(an IDL implementation for CORBA interoperability)
  • 添加集合框架

J2SE 1.3

2000年5月8日,代号Kestrel(美洲红隼)的JDK1.3发布,主要特性如下:
- Hotpot虚拟机
- 针对CORBA改进RMI
- Java Naming and Directory Interface (JNDI)
- Java Platform Debugger Architecture (JPDA)
- JavaSound
- Synthetic proxy classes(复合代理类)

J2SE 1.4

2002年2月13日,代号Merlin(灰熊)的JDK1.4发布,JDK1.4是Java里程碑版本,它是按照Java Community Process(JSR59)规范开发的,主要特性如下:

  • assert关键字(jsr41)
  • Regular expressions
  • Exception chaining
  • 支持IPV6
  • Non-blocking IO (jsr51)
  • Logging API(jsr47)
  • Image I/O API
  • Integrated XML parser and XSLT processor (JAXP) (jsr5、jsr63)
  • Integrated security and cryptography extensions
  • Java Web Start included (Java Web Start was first released in March 2001 for J2SE 1.3) (jsr56)
  • Preferences API (java.util.prefs)

J2SE 5

2004年9月30日,代号Tiger(老虎)的JDK5发布,它是按照Java Community Process(JSR176)规范开发的,主要特性如下:

  • 泛型(jsr14)
  • 注解(jsr175)
  • 自动拆箱/解箱(jsr201)
  • 枚举(jsr201)
  • 可变长参数
  • 遍历循环foreach(jsr201)
  • 改进Java内存模型(jsr133)
  • Static imports

标准库方面改进主要有如下几个方面:

  • Automatic stub generation for RMI objects
  • Swing: New skinnable look and feel, called synth
  • The concurrency utilities in package java.util.concurrent
  • Scanner class for parsing data from various input streams and buffers

Jdk5版本变迁

Both version numbers “1.5.0” and “5.0” are used to identify this release of the Java 2 Platform Standard Edition. Version “5.0” is the product version, while “1.5.0” is the developer version. The number “5.0” is used to better reflect the level of maturity, stability, scalability and security of the J2SE.This correspondence continued through later releases (Java 6 = JDK 1.6, Java 7 = JDK 1.7, and so on).

JDK5 updates

J2SE 6

2006年12月11日,代号Mustang(野马)的JDK6发布,它是按照Java Community Process(JSR270)规范开发的,主要特性如下:

  • 脚本语言支持(jsr223)
  • 改进web服务(jsr224)
  • 支持JDBC4.0(jsr221)
  • 提供编译器API
  • Java Architecture for XML Binding (JAXB)更新到2.0(包括Streaming API for XML (StAX)整合)
  • 插入式注解(jsr269)
  • 改进GUI
  • 改进虚拟机

JDK开源

2006年11月13日,sun公司宣布将JDK源码以GPL v2(GNU General Pulbic License v2)协议下开源,并建立OpenJDK组织对这些源码进行独立管理

JDK6 updates

J2SE 7

2009年2月19日,代号Dolphin(海豚)的JDK7发布,主要特性如下:

  • JVM支持动态语言
  • 64位系统压缩指针
  • Concurrency utilities under JSR 166
  • New file I/O library (defined by JSR 203) adding support for multiple file systems, file metadata and symbolic links. The new packages are java.nio.file, java.nio.file.attribute and java.nio.file.spi
  • Timsort is used to sort collections and arrays of objects instead of merge sort
  • Library-level support for elliptic curve cryptography algorithms
  • An XRender pipeline for Java 2D, which improves handling of features specific to modern GPUs
  • New platform APIs for the graphics features originally implemented in version 6u10 as unsupported APIs
  • Enhanced library-level support for new network protocols, including SCTP and Sockets Direct Protocol
  • Upstream updates to XML and Unicode
  • Java Deployment Rulesets

JDK7未实现特性

Lambda (Java’s implementation of lambda functions), Jigsaw (Java’s implementation of modules), and part of Coin were dropped from Java 7, and released as part of Java 8 (except for Jigsaw, which will be in Java 9).Java 7 was the default version to download on java.com from April 2012 until Java 8 was released.

JDK7 updates

J2SE 8

2014年3月18日,代号Spider(蜘蛛)的JDK8发布,主要特性如下:

  • 支持lambda expressions(JSR 335)
  • JSR 223, JEP 174: Project Nashorn, a JavaScript runtime which allows developers to embed JavaScript code within applications
  • JSR 308, JEP 104: Annotation on Java Types
  • Unsigned Integer Arithmetic
  • JSR 337, JEP 120: Repeating annotations
  • JSR 310, JEP 150: Date and Time API
  • JEP 178: Statically-linked JNI libraries
  • JEP 153: Launch JavaFX applications (direct launching of JavaFX application JARs)
  • JEP 122: Remove the permanent generation

Java 8 updates

J2SE 9

原创粉丝点击