Java小史:从1到5

简介: 介绍Java从1到5的版本变化

下面介绍一下Java从1到5的的版本变化,其中表红色的为现在还在影响Java的重要改变。

JDK 1.1:

1997年2月19日发布。新增功能主要包括

  • AWT事件模型大规模重新编制
  • 加入了内部类
  • JavaBeans
  • JDBC
  • RMI
  • 能够支持自理的反射能力,在运行时不可能有修改。
  • 针对 Microsoft Windows 平台上运作的版本,附带由Symantec为JavaSoft生产的JIT编译器
  • 支持国际化和Unicode,该功能源自Taligent

J2SE 1.2:

1998年12月8日发布,代号为Playground。 该版本到J2SE 5.0为止的后续版本被更名为Java 2,而版本名称“J2SE”(Java 2平台,标准版)取代JDK以区别J2EE(Java 2平台,企业版) 和J2ME(Java 2 Platform,Micro Edition)基础平台。这是Java的一个非常重要的版本,它将Java平台的大小增加至原先的三倍,在59个程序包中达到了1520个类。主要增加包括:

  • strictfp 关键字
  • 主类别中集成了Swing图像化API
  • 首次为Sun提供的JVM配备JIT编译器
  • Java plug-in(即 Java Applet)
  • Java IDL,一个与CORBA互通的接口描述语言实现
  • Java集合框架

J2SE 1.3

代号为Kestrel。在的版本中最著名的改变包括:

  • 包含了HotSpot JVM(HotSpot JVM第一次被发布是在1999年4月,名为J2SE 1.2 JVM)
  • 为了支持与CORBA的选择兼容性而修改了RMI
  • Java命名和目录接口(Java Naming and Directory Interface,缩写JNDI)包含在主程序库中(先前为扩展组件的形式)
  • Java Platform Debugger Architecture (JPDA)
  • JavaSound
  • 用于实现动态代理的类

扩展:JNDI和Log4j

J2SE 1.4

代号为Merlin。2002年2月6日发布了JSR 59,是第一个在JCP下开发的Java平台。主要的变化包括︰

  • 语言上的改变
  • assert关键字
  • 程序库的改善
  • 仿照Perl的正则表达式
  • 异常链,允许一个异常来封装原先处于较低级别的异常
  • 支持Internet Protocol version 6 (IPv6)
  • 非阻塞I/O(取名为 Nonblocking Input/Output,NIO)
  • 日志API
  • 图像 I/O API来读取和写入图片,支持JPEG、PNG等格式
  • 集成了XML解析器和XSLT处理器(JAXP)和JSR 63
  • 集成安全和加密扩展组件(JCE, JSSE, JAAS)
  • 内置了Java Web Start (Java Web Start 在2001年3月第一次被发布,作为J2SE 1.3的可选组件)
  • 首选项 API (java.util.prefs)

J2SE 5.0/Java 5.0

代号为Tiger。这个在2004年9月30日发布的版本原本以1.5编号,也就是仍然使用内部版本编号。这个数字辈改变是为了“更好地反映成熟度、稳定性、可扩展性和 J2SE 的安全水准”。

J2SE 5.0在2008年4月8日进入其即将停止公开更新的期间;2009年11月3日正式不公开开放更新。Oracle客户直到2015年5月都能透过付费的方式获取更新 。

Tiger增加了若干个重要的新语言功能。

  • 泛型(Generics): 为集合提供编译期间 (静态) 类型安全,且不须为大多数类型转换 (类型转换)
  • 元数据(Metadata): 也称作注解。让语言结构(像是类别和方法)能够用额外的资料标记,可以由元数据意识工具处理
  • 自动封装与解封装: 在基本的资料类型(如int)和基本的的外覆类别 (如Integer) 之间能够自动转换
  • 枚举(Enumerations): 以enum 关键字创造出一种类型安全,有排序值的清单(如Day.MONDAY、 Day.TUESDAY 等);以前这只能透过非类型安全的恒定整数或自行撰写的类别来达成 (类型安全的枚举模式)
  • 可变参数函数(Varargs):方法的最后一个参数现在可以用一个类型名称加上三个点宣告(如:void drawtext(String... lines));在调用代码中,类型中参数里任何的数字可以被使用,而它们再放在一个数组来传递给方法,或是其它的调用代码可以传递那个类型的数组
  • 强化 foreach 循环:for 循环的语法被用特别的语法扩展了,适用于数组或 Iterable,用于迭代每个成员,如基本的Collection 类别
  • 改进多线程 Java 程序的执行语义;新的 Java 存储器模型改善了复杂性、 有效性和以前的规格性
  • 静态导入

另外也有以下这些对于基本程序库的改善:

  • 自动给RMI产生桩模块
  • Swing:新的接口外观,叫做synth
  • 异步实用工具在java.util.concurrent
  • Scanner 类别来解析来自各式各样的输入和缓冲

Java 5是Java的最后一个正式支持Microsoft Windows 98和Windows ME的版本,而Windows Vista是J2SE 5在2009年10月的Java 5生命周期之前支持的Windows的最新版本。

Java 5 Update 5(1.5.0_05)是Java在Windows 95(装了Internet Explorer 5.5 的)和Windows NT 4.0上运行的最后一个版本。

Java 5 最初出现在 Mac OS X 10.4 (Tiger),到了 Mac OS X 10.5 (Leopard)时成为了默认的 Java 版本。

版本控制系统的改变

此版本推出了JAVA语言中,一个新的版本控制系统,而旧版本控制系统仍然可以在开发者资源库中继续使用。

这种对应关系持续维持到以后的版本 (Java 6 = JDK 1.6, Java 7 = JDK 1.7, 以此类推).


相关文章
学JAVA,从现在开始-day04
每日记录自己学习java的心得和体会~
|
前端开发 Java 数据安全/隐私保护
学JAVA,从现在开始-day05
每日记录自己学习java的心得和体会~
|
SQL XML 存储
JAVA问答3
JAVA问答3
102 0
|
监控 Dubbo 安全
JAVA问答8
JAVA问答8
106 0
1086 就不告诉你(JAVA)
做作业的时候,邻座的小盆友问你:“五乘以七等于多少?”你应该不失礼貌地围笑着告诉他:“五十三。”本题就要求你,对任何一对给定的正整数,倒着输出它们的乘积。
1086 就不告诉你(JAVA)
|
人工智能 Java
Java i++ 与 ++i
Java i++ 与 ++i
157 0
Java i++ 与 ++i
|
Java
+ 在Java中有两种使用情况
+ 在Java中有两种使用情况:
111 0
|
Java
java
zhe
283 0
|
Java 应用服务中间件 数据库连接
java导读
导读:      我们学习Java大概有3个方向,第一,桌面系统,包括C/S结构;第二,J2ME,面向无限领域,很有潜力的家伙,看看中国的手机用户就知道了。第三,面向企业应用、计算的平台,J2EE.      初次涉及Java领域,感觉到Java入门是好像没有C,C++入门快,工具也没有什么Turbo C,Visual C++好用(自己的破机器实在陪不起JBuilder,贪婪的家伙,以后一定要收拾她)。
1274 0
|
JavaScript 前端开发 Java
Java和JavaSciprt比较
JavaScript 与Java是两个公司开发的不同的两个产品。Java 是原Sun Microsystems公司推出的面向对象的程序设计语言,特别适合于互联网应用程序开发;而JavaScript是Netscape公司的产品,为了扩展Netscape浏览器的功能而开发的一种可以嵌入Web页面中运行的基于对象和事件驱动的解释性语言。
1113 0