JAVA各个版本特点总结

  这两天看了部分《Java7高级进阶》,对Java的发展进程及版本区别也有了更深刻的了解,下面是总结摘抄Java各个版本的特点跟大家分享一下。

1、JDK1.0(1996年1月23日)代号:Oak

  JDK1.0本身非常小,差不多212个类、8个包,以及Sun提供的一个用于调试的包,Java设计之初主要是用于嵌入式软件的开发,因此这个版本的JDK提供了有限的能力,并且提供的库在当时没法与其他语言相提并论。java.awt中提供的用户界面太过原始,甚至没有提供打印工具。
  这个版本的Java能成功是因为当时互联网的兴起。那个时候网页还不具备动态能力,java applet为网页提供了动态内容及交互能力。因此开发人员通过java applet获取了大量用户,使得java变得流行起来。此版本还提拱了用于网络编程的类,java甚至一度被宣传为网络编程语言。
  JDK1.1(1997年2月19日)共包含504个类,23个包,主要改动有以下内容:

  • Java Bean API,开发人员可以在生成器工具中可视化的对Java Bean操作,可以通过使用Java
    Bean API可视化的创建复杂GUI(图形用户界面)
  • 远程方法调用RMI,可以让客户端调用运行在远程服务器上的程序。
  • JAR文件格式,将类进行打包传输更快捷、方便。
  • 数字签名,可以对java程序的权限进行验证。
  • AWT增强,AWT包含了用于构建GUI的接口和类,支持黏贴版传出数据(原生系统和java程序互传数据)、可以创建弹出菜单、添加打印支持、大文档滚动显示等。
  • 其他改动,引入对象序列化类、内省与反射API、提供定义内部类功能等。

2、JDK1.2(1998年12月8日)代号:Playground

  JDK1.2拥有1520个类、59个包,并且在这个版本提出了Java SE,下面是一些改动。

  • 引入Swing,Swing类的出现使得原生AWT类多少有点淘汰,AWT类过于笨重,使用了许多操作系统的调用,而Swing完全基于Java实现,且非常轻量级。
  • 2D API,Java平台中所有绘图的基础,不只是用于图表。
  • 拖拽功能,Java程序可以与原生系统直接通过拖拽传递数据。
  • 音频加强,提供了用于播放MIDI文件以及wav、aiff、au文件的类,并且提高了音质。
  • Java IDL,Java既提供CORBA IDL(接口定义语言)向Java接口的映射,也提供了Java向CORBA IDL的逆向映射。这使得对现有的Java客户端与基于远程调用的Java应用程序的投资得到了保障。
  • 安全增强,Java安全是基于策略的。JDK1.1推出了数字签名,使用数字签名可以用于鉴别applet源,但并不能据此来分配不同的权限。JDK1.2通过使用安全策略来解决这个问题,为系统资源提供了更加细粒度的访问控制。
  • 其他增强,对性能的改善,包括:加载类使用更好的内存压缩、内存分配和垃圾回收拥有更快的算法以进行快速分配和回收、引入了JIT编译器等。

3、JDK1.3(2000年5月8日)代号:Kestrel

  JDK1.3拥有1840个类、76个包,这个版本对Java基础没有新加过多的特性,值得注意的改动包括

  • 捆绑热点JVM(HotSpot JVM)。
  • Java Sound、Java命名与目录连接(JNDI)以及Java平台调试架构。
  • 对RMI API进行了若干增强–长度超过64KB的字符串可以被序列化。
  • RMID需要一份安全策略文件才能进行命名。
  • 增强了Math包,添加了一些新类包括:Timer、StrictMath、打印类及java.media.sound类。

4、JDK1.4(2002年2月6日)代号:Merlin

  这是首个在JCP(Java社区过程)下使用JSR(Java规范请求)59开发得来的版本,拥有2991个类、135个包,其中主要的改动包括:

  • 从模仿Perl得来的正则表达式、异常链接、集成的XML解析器、XSLT解析器、Java Web Start。
  • 对AWT包进行改动提升鲁棒性及GUI程序性能。
  • JDBC为程序语言提供了统一的数据访问,并且在这个版本中被加强为JDBC3.0 API。
  • 对RMI、Math、集合框架、可访问性(AccessAccessibility)以及Java原生接口(JNI)添加了一些功能。

5、JDK1.5(2004年9月30日)代号:Tiger

  此版本在JSR 176下开发完成,增加了许多重要特性,包括:

  • for-each循环、泛型、自动装箱以及可变参数。
  • 引入了类型安全的枚举、国际化API、JavaSound、Java 2D技术、Image I/O、AWT、Swing也得到了增强。
  • java.lang和java.util获得了若干增强。
  • 加入了Formatter与Scanner类,并发工具与集合框架也得到了许多增强。

6、JDK1.6(2006年12月11日)代号:Mustang

  这个版本促进了JVM中脚本语言的使用,并提供了对Visual Basic语言的支持。这个版本对集合框架进行了许多改动并添加了许多功能,其中包括:

  • 添加新的接口Deque、BlockingDeque、NavigableSet、NavigableMap以及ConcurrentNavigableMap;
  • java.lang.instrument包也得到了若干增强;
  • Instrumentation API提供了可以让Java程序语言代理将程序instrument到JVM上运行的服务;
  • java.io包引入了名为console的新类;
  • JAR与ZIP APi也得到了增强;
  • Java Web Start与Java网络加载协议(JNLP)也获得了增强,JNLP为部署基于Java2技术的应用程序到客户端桌面提供了浏览器无关的体系结构;
  • 支持插入式注解;
  • 大量的GUI改善等。

7、JDK1.7(2011年7月7日)代号:Dolphin

  JDK1.7位Java语言引入了许多增强功能:

  • 整数类型可以用二进制数系统表示;
  • 数值字面量可以包含下划线字符以获得更好的可读性;
  • 可以在switch语句中使用字符串;
  • 在泛型实例的创建语法中引入了钻石运算符;
  • 添加了新的带资源的try语句,多种异常类型可以包含在一个catch块中;
  • 添加了一个新的编译器选项及两个注解,为改变可变参数方法中传递非具体化参数时的编译警告与错误;
  • 引入了NIO.2 API可以为管理文件系统对象而开发自定义的文件系统供应程序;
  • API中的新增功能为文件I/O与文件系统访问提供了广泛的支持;
  • JDBC4.1 API可以使用带资源的try语句来自动关闭类型为Connection、Resultset、Statement的资源;
  • RowSet添加了一些功能,可以创建JDBC驱动支持的所有行集类型;
  • 添加了对Solaris中流控制传输协议(SCTP)以及套接字连线协议(SDP)的支持;
  • JVM新增了一套叫做invokedynamic的指令为为支持动态类型化程序语言的实现;
  • 并发API新增了轻量级的分支/合并(Fork/Join)框架;
  • Swing增加了下一代的跨平台外观,名为Nimbus外观等。

8、JDK1.8(2014年3月18日)代号:spider

  找到一篇不错的博客,请参考:

http://blog.csdn.net/qiubabin/article/details/70256683

感谢大家的阅读,如有不妥之处,谢谢指正!

你可能感兴趣的:(JAVA基础,java,jdk,sun)