




免费预览已结束,剩余10页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java的发展历史 Java是SUN公司发明的一种计算机语言,现今已经在电脑网络乃至家用电脑,得到广泛应用。Java的名称是来源于太平洋一个名为Java的小岛,该岛出产一种味道非常美妙的咖啡。Java的发明者认为该计算机语言是非常好的东西,所以把他认为最好的名字给了她。 Sun Microsystems公司的总裁Scott McNealy认为Java为Internet和WWW开辟了一个崭新的时代。微软总裁比尔.盖茨说:“Java是最卓越的程序设计语言”。 北美地区使用Java的软件开发人员比例达到44%。在北美以外地区,使用Java的软件开发人员比例为43%。这个数字明年将上升到61%。 美国依文斯市场调查公司报告指出:在美国Java程序开发人员的平均年薪最高,基本年薪为7万美元;C+ 和COBOL程序开发人员的平均年薪为6.6万美元。 根据权威部门预计到2005年我国对Java技术人员的需求量将高达20余万人。 根据美国CRN公司调查,拥有Java证书的程序员平均工资高于没有证书人员的37%。 与我国情况类似的印度,参加Java培训的绝大多数都是个人,他们很看重Java的认证,占到学习人数的90%以上。(ChinaITLab)Java发展的历史(Java从零开始系列一) 学习一种语言,至少要对这种语言的发展历史有一个大致的了解吧,这也算是计算机文化方面的内容,今天我就简单的介绍下Java大致的发展历程吧: 其实Java的发展历史,可以追溯到1991年,当时有两个电脑奇才:Patrick Naughton 和James Gosling 带领着SUN公司的一个工程师小组,主要设计能够用于家电消费设备的小型计算机语言。由于这些设备没有很强的处理能力和太多内存,所以这个语言必须非常小并能够生成非常紧凑的代码。另外,不同的厂商可能会选择不同的CPU,所以这个语言必须不能够限定在单一的体系结构下,也就是能够满足跨平台的要求。这个项目被成为“Green” 。因此,代码短小,紧凑,与平台无关便成为了Java天生的特性了。 为了解决与平台无关这个难题,Green项目组的工程师设想了一种能够为假想及其生成中间代码的可移植的语言,这就是后来的Java虚拟机(JVM)。 Gosling起初把他的语言起名为“Oak”,但是SUN公司的人发现已经存在一门叫做Oak的计算机语言了。后来开发小组在一次咖啡馆聚会中,从咖啡的灵感中想到了“Java”这个名称,以至于流传至今。 然而,GreenA项目并没有使Java在消费电子成品市场取得成功。相反,Java在Internet的浏览器上的应用却是声名鹊起。当时Patrick Naughton 和 Jonathan Payne开发的浏览器演化为HotJava浏览器,并有在网页中执行Java代码的恩年管理,从而引发了人们对Java的狂热。 SUN公司在1996年早期发布了Java第一版。人们很快认识到Java1.0并不适合做真正的应用开发,他的后继者1.1版本很快就弥补了这个不足。极大地提高了反射能力并为GUI编程增加了新的事件模型。 1998年12月Java1.2版本发布,SUN公司将其成为J2SE SDK1.2(Java2标准软件开发工具1.2版)。 除了Java的“标准版”J2SE,SUN公司还推出了其他两种版本:用于蜂窝电话等嵌入式设备的“微型版”J2ME;用于服务端处理“企业版”J2EE. 关于Java的发展历史,大家想知道更多的话,也可以到网上去搜索一些,介绍的更详细。= 作者: KenBlog()发表于: 2005.08.02 10:59分类: Java不眠之夜 出处: /post/1946/37108- Java发展演变史1.Java:怀胎 Java的历史可以追溯到1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行,他们使用了C/C+/Oak语言。由于电子产品种类繁多,运行环境各不相同,使得用这些语言进行开发的软件必须为不同的电子产品而专门设计,所以项目组疲于奔命,消费性电子产品软件环境的发展无法达到预期的目标,绿色计划也陷于停滞状态。 直至 1994年下半年,由于Internet的迅猛发展和环球信息网 WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了!Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。 但没有相应的开发库而只靠Java语言来进行开发肯定是困难重重,所以Sun公司在1996年的1月23日发布了JDK1.0来帮助开发人员的开发。JDK包括两大部分:运行环境和开发工具。而运行环境包括五大部分:核心API,集成API,用户界面API,发布技术,Java虚拟机(JVM)。Java能够在信息网络时代快速发展,得益于它独特的组成结构,它并不直接被编译成所在平台的机器语言然后执行,而是先被编译成字节码,然后才到装有JVM的硬件上运行,所以它能够跨平台运行;而且,不是一定要使用Java语言来写程序才能编译成Java字节码,我们用C/C+/Javascript等语言来写程序也可以编译出JVM要求的字节码文件。在这个时期,人们使用最多的 Java API 无疑地就是 AWT,因为 JDK 1.0 时只有 AWT 称得上是一组完整的 framework,其它 Java API 都比较偏向个别的 class。 紧跟着,Sun公司在1997年2月18日发布了JDK1.1。JDK1.1相对于旧版本最大的改进,是推出了JIT(Just-In-Time)编译器。传统的JVM收到一道字节码指令后,解释成机器码,马上执行该机器码,然后丢掉该机器码,再接收下一道字节码指令即便是以前执行过的字节码指令,依然需要重新解释成机器码才能执行。而JIT编译器会把常执行的部分先解释好放在内存,以后再次执行该指令时,不用再解释,直接从内存中取出机器码就可以执行了,这样提高了不少的效率。 在JDK1.1时代,Java平台分为PersonalJava与EmbeddedJava,前者比较适用于运算资源和内存丰富的设备,而资源有限者适用于后者。这样的分类明显不符合时代发展的潮流,所以,Java平台处处蕴藏着新的翻天覆地的革命2.J2SE1.2:诞生 JDK1.2在1998年12月4日的隆重发布,标志着Java2平台的诞生。Java2的J2SE1.2时代是一个大变革时代,它进行了如下的三大革命:* 市场推广革命 在Java1.0或者1.1中,称API库为JDK,但为了方便市场推广,Sun公司在Java1.2版以后将JDK1.2改名为J2SDK,将Java改名为Java 2。在99年Sun公司还将Java2平台分为三大块:J2SE,J2EE,J2ME。这次市场推广革命顺应了网络急速发展的潮流,对Java2平台的发展起到了很好的催化剂的作用。* API供应标准革命 而随着供应商的不同,Java的API分为三大类: 1、Java Core API:由Sun公司制定的基本的API,所有的Java平台都应该提供。这就是我们平常所说的Java核心类库。 2、Java Optional API:由Sun公司制定的扩充API,Java平台可以有选择地提供。比如, JFC以前是Sun对JDK的功能扩展,不是Java的公共规范。Java2平台则包含了JFC技术,不需要再扩展了。 3、特殊API:由特殊厂商或者组织提供的API。比如,美国法律对出口中国的加解密算法的安全强度有一定的限制,Java平台中不能包括一些安全强度较高的加密解密算法,所以部分其它国家的公司,如加拿大的BouncyCastle公司等,可以提供一些自己的安全API。* API制定过程的革命 如果你有需求不能通过遵循标准的API来实现,可以向 提出制定新的API的请求,经过审核,你的请求可能被通过或者驳回;如果是被通过,则开始进入制定该API的程序。 J2SE1.2时代进行的这些革命形成的制度一直沿用到现在,对Java技术的发展形成了深远的影响。 除了上述的三大革命,Java2 还支持并新增了许多新特性,最受追捧的当属Swing库。Swing 是轻量级 的 API,它不但有各式各样先进的组件,而且连组件风格都可抽换。Swing 出现之后,大家很快地就不太使用 AWT 了。但请不要以为 Swing 是用来取代 AWT 的,其实 Swing 是架构在 AWT 之上的, Swing 的出现只是减少程序员直接使用 AWT 的机会,而不会让 AWT 消失。Java2 还废弃了一些API,最重要的莫过于Thread类中对suspend(),resume()和stop()等方法的废弃。由于JDK1.1的集合类库中的Vector类和HashTable类都考虑了同步,在平常的使用中影响效率,所以Java2专门添加了对应的非同步类,并完善了集合类库。 Java2平台能够得到广泛的应用,还应归功于这个时期的一些优秀书籍,比如著名的(卷一和卷二),该书随着JDK版本的变化已经出到第六版。3. J2SE1.3:拓广 Java2平台推出后,得到了市场的强烈反响,所以,在2000年5月8日推出的J2SE1.3对J2SE1.2的改进,主要是对各种已有API的加强和对新API的拓展。 数字运算: 加入了java.lang.StrictMath,方便我们的一般的数字运算。新的Timer API:相信大家对其中的java.util.Timer和java.util.TimerTask一定不陌生。Collections包:?加入了一些新的API,方便我们的使用。虚拟机停止钩子:J2SE1.3还加入了一个强大的功能,那就是虚拟机停止钩子(Virtual Machine Shutdown Hooks),这个功能使得我们能够在虚拟机停止时完成我们自己的操作,比如关闭网络连接或者保存会话状态或者清除临时文件等等。 DNS服务:在JNDI接口方面,加入了一个DNS服务的实现。Jini实现:J2SE1.3包含了一个Jini实现,这使得我们可以方便地把诸如打印机、摄像机和磁盘驱动设备插入现有网络中,并且能自动搜索已在网上的设备可以提供的服务并享用这些服务。XML支持:由于计算机网络和XML技术的快速发展, J2SE1.3在Optional API中引入了Java API for XML包。 HotSpot虚拟机:J2SE1.3引入了HotSpot虚拟机。在solaris版的JDK1.3中,已经不支持传统的虚拟机,而windows版的JDK1.3同时支持传统虚拟机和HotSpot虚拟机。 从上面的分析可以看出,J2SE1.3主要是对J2SE1.2查漏补缺和拓展新的API。从应用领域方面考虑,J2SE1.3已经涵盖了数据库、WEB、多媒体、网络、电话、影像、加解密、图形等等大部分的信息技术领域。 在这个时期Java2还有一个重要活动就是推出SCSL(Sun社区源代码许可)许可协议。Sun公司开放源代码项目的“女1号”Danese Cooper在1999年加入公司,负责Sun(包括Java)和开放源代码社区之间的协调工作。Sun一直尽可能在赢利和开放源代码之间寻求更好的平衡。 在J2SE1.3时代,Java2平台得到了充分的发展,各大应用服务器在这个时代渐渐成熟并被广泛采纳,而Java2相关的培训和书籍更是如火如荼,Thinking in Java当属不得不推荐的一本。4. J2SE1.4:快速 J2SE1.4平台的推出发生在2002年2月13日,由于此前在Java平台和.Net平台间发生了规模浩大的孰优孰劣的论战,而论战中,Java平台最大的缺点就是性能问题,所以J2SE1.4平台把性能的改善放在了最重要的位置。 HotSpot虚拟机: HotSpot虚拟机能够很大程度上提高性能,所以J2SE1.4已经不支持传统的虚拟机。现在,启动应用程序应该通过-client或者-server选项来启动,如果你还是通过-classic选项来启动,会收到这样的错误提示:”Error: Classic VM no longer supported。” 锁机制: 由于旧版的HotSpot虚拟机的锁机制会导制严重的性能和功能问题,J2SE1.4已经改写了该锁机制。 安全API: Java Cryptography Extension(JCE),Java Secure Socket Extension(JSSE)和Java Authentication and Authorization(JAAS)这三大安全API从optional API移到了core API中。这样,J2SE1.4的安全域(SecureRandom)实现可以利用操作系统提供的安全机制,以便缩短应用程序的启动时间。同时从optional API移到core API的功能还有XML处理API和JDBC2.0 API。RandomAccess标记接口: 加入了RandomAccess标记接口,如果一个List实现了该接口,则表示它支持快速的随机访问,这样可以提高List访问的速度。 LinkedHashMap: 加入了LinkedHashMap,这是一个插入排序的Map实现,但它的运行速度和HashMap一样快。 反射: 很多产品中都要使用反射(Reflection)机制,但大家知道,反射是相当耗时的,所以,J2SE1.4中重写了java.lang.reflect.Field、java.lang.reflect.Method.invoke()、java.lang.reflect.Constructor.newInstance()和Class.newInstance()等方法,使得我们利用反射也能写出高性能的应用程序。 64位计算: J2SE1.4支持64位计算。64位支持使J2SE1.4可以使用超过几百GB的内存,而以前的版本仅可以使用4G以内的内存。内存使用的扩大可以提高程序的运行效率。 新的I/O API: J2SE1.4在API层面最大的变动,就是它更新了原有的java.io包,以及加入了一组更有效率更多功能的新的I/O API。旧的I/O处理是以串流(stream)的方式来存取的,以字节为单位,而新的I/O处理是以块(block)的方式来存取的。一个块可能包含了512字节,而磁盘的存取本就是一个块一个块来进行的,所以新的I/O处理方式对于底层底数据存取更自然更有效率。 断言和日志处理: J2SE1.4版本在Java语言层面上加入了断言(assert关键字),在API层面上加入日志处理API,这些为程序的调试提供了强有力的支持 。 从上面的分析可以看出,Java 2平台在经过数年的发展后,已经比较成熟稳定,J2SE1.4主要是对平台的性能进行较多的考虑和修改。在分布式程序方面,1.4版比1.3版的运行效率提高了一半以上;而在客户端程序方面,1.4版比1.3版的效率提高了1/3。当然,除了考虑运行效率,J2SE1.4还有其它方面的改进,如推出了一个全新的运行Java应用程序的方法Java Web Start,该方法克服了Java Applet的安全性限制的问题和Java Application的软件发布难的问题,并结合了上面两种方法的好处,为Java软件客户提供了非常友好的使用体验。 J2SE1.4版是J2SE第一个参与了 Java共同体过程(JCP)的J2SE版本。 象Borland、Compaq、Fujitsu、 SAS、 Symbian、 IBM这样的公司,和Sun一起定义并发展了J2SE 1.4规范。在开放、良好的文档编撰与管理的过程中,形成了一个高质量的、代表了Java共同体的多样性的规范。J2SE1.4的Specification Lead是Doug Kramer。Doug Kramer是优秀的Java开发人员和著名的教育培训专家,他同时还是J2SE1.4.2的Specification Lead 和J2SE1.5的JVM的Specification Lead。5. J2SE5.0:易用 在2004年十月J2SE5.0发布的时候,SUN公司这样解释这次版本名称不是J2SE1.5而是J2SE5.0的原因:“从Java诞生至今已有9年时间,而从有J2SE算起也有5个年头了;在这样的背境下,将该版本号从1.5改为5.0可以更好的反映出新版的J2SE的成熟度、稳定性、可伸缩性、安全性。”J2SE的这次变更之重大和意义之深远,的确也值得我们为之把版本号变换到J2SE5.0。我们再看看Sun公司网站对J2SE5.0的features描述:“通过增强Java平台的力量,允许开发者更容易地使用,Java编程语言的这些改进将吸引大量各种Java开发者”,这是“Java技术发展历程的一个重要里程碑” 。从这个描述我们可以看出,J2SE5.0最大的目标是通过提供易用性而吸引各种开发者(当然包括以前的C/C+开发者) ,而它对以前版本的修改并不仅仅是API的升级,而且包括对Java语言层面的改进。 访问环境变量: 最初的Java语言有一个访问环境变量的方法System.getenv(),但因为Java宣称的”Write Once,Run AnyWhere”特性,所以在JDK1.0中去掉了这个能够访问平台专有信息的方法。在J2SE5.0中,它又来了,并有所扩充。由此可见J2SE5.0对编程方便性的重视程度。泛型 J2SE5.0提供了强大的泛型机制,让程序员可以减少代码重复,这个变化应该可以吸引小部分的C#开发人员吧。 增强的for循环 为了克服普通for循环的代码臃肿特点,J2SE5.0提供了增强的for循环,我们现在可以这样写一个for循环:public void printAll(Collection coll)for(String str : coll)System.out.println(str);怎么样?是不是简单了很多?自动的装箱/拆箱 我们以前手工的做装箱(Boxing)/拆箱(unBoxing)操作时,是不是很烦?放心,J2SE5.0提供了自动的装箱/拆箱操作,我们现在可以写如下的代码:public void boxing(int i)ArrayList list=new ArrayList();list.add(0,i);System.out.println(“i的值是”+list.get(0);可变参数数目 J2SE5.0 开始支持Varargs(不固定自变量个数),J2SE5.0中还加入了以前抛弃的枚举和C风格的格式化输出,这应该是为了吸引以前的C开发者吧。毕竟,在C开发中枚举和格式化输出用的是太多了。 并发 J2SE5.0中加入了java.util.concurrent包,并向集合框架中加入了Queue接口,J2SE5.0还为各种集合提供了并发情况下的实现。 Properties类增强 由于XML的普及性应用,J2SE5.0为java.util.Properties类加入了从XML文件中装载属性和把属性值存储到XML文件中的方法。 Annotation功能 J2SE5.0提供了注解(annotation)/元数据(metadata)功能,相信以后的大部分应用产品都将充分利用它的注解而实现产品的各种特性。其它 J2SE5.0还在多线程(并发机制)、安全、国际化、UI等方面进行了大规模的变更,使得我们能够更方便地进行Java开发。 其实,上面的这些变更,并不是我们程序员非要不可的内容。我们完全可以通过自己的办法来达到这些变更实现的功能。但J2SE5.0的目标就是让我们程序员能够更加方便地进行开发,所以,我们在基于J2SE5.0开发时,应该能够明显的体会到它的易用性。6.展望 时至今日,J2SE已经发展为一个覆盖面广、效率高、易用性强的技术平台,但Java并没有停止前进的脚步。Mustang版本的J2SE正在紧锣密鼓的开发当中,按以前的惯例,每两年会发布一个全新的J2SE版本,所以Mustang开发版对应的J2SE6.0发布版将在2006年完成。 J2SE6.0的Specification Lead是Sun公司老资格的开发者Mark Reinhold,我们在J2SE1.2中就能看到他的影子。Mark Reinhold曾经是NIO(新的I/O处理) API的Specification Lead,现在是Sun的J2SE架构师与总工程师。Mark Reinhold透露说,J2SE6.0将更易于管理,可以给外部的管理软件提供更多信息。它可以让调试软件在程序运行的时候进行检查,而不是在运行之前,这样更容易找到问题所在。他说,J2SE6.0 将会更好地和图形用户界面集成,包括微软即将发布的Windows 版本Longhorn。 2005年3月23日是Java技术十周年庆典日,在这十年的发展中,Java平台吸引了四百万开发者,在网络计算遍及全球的今天,更是有17.5亿台设备使用了Java技术。作为Java技术的基础,J2SE的功绩不可掩没,我们期望J2SE伴随Java平台一路走好! JAVA发展历史一、JAVA的产生背景(19911995) 1991年4月,Sun公司的James Gosling领导的绿色计划(Green Project)开始着力发展一种分布式系统结构,使其能够在各种消费性电子产品上运行。而Green项目组的成员一开始使用C+语言来完成这个项目,由于Green项目组的成员都具有C+背景,所以他们首先把目光锁定了C+编译器,Gosling首先改写了C+编译器,但很快他就感到C+的很多不足,需要研发一种新的语言Java来替代它,一杯飘香的咖啡成为了它的标志。 在17 个月后,整个系统完成了,这个系统是更注重机顶盒式的操作系统,不过在当时市场不成熟的情况下,他们的项目没有获得成功,但Java语言却得到了Sun总裁McNealy的赏识。 直至 1994年下半年,由于Internet的迅猛发展和环球信息网 WWW的快速增长,第一个全球信息网络浏览器Mosaic诞生了;此时,工业界对适合在网络异构环境下使用的语言有一种非常急迫的需求;Games Gosling决定改变绿色计划的发展方向,他们对Oak进行了小规模的改造,就这样,Java在1995年的3月23日诞生了! Java的诞生标志着互联网时代的开始,它能够被应用在全球信息网络的平台上编写互动性及强的Applet程序,而1995年的Applet无疑能给人们无穷的视觉和脑力震荡。我们姑且将Java的这段历史称为Java前传吧。 其实Java的诞生颇有那么一股“有心栽花花不开,无心插柳柳成阴”的味道。就象当年Unix和它的前身MULTICS系统一样。 2、 JAVA的幼年时期(19951998) Sun继Green项目后又经过了几年的研究,终于在1995年5月23日在SunWorld95上正式发布Java和HotJava浏览器。 在同年,有很多公司先后获得了Java许可证,如Netscape在1995年8月,Oracle在1995年10月分别获得了Java许可证。 Sun在1995年发布第一个Java版本后,于1996年1月宣布成立新的业务部门JavaSoft部,这个部分主要负责开发、销售并支持基于Java技术的产品,由AlanBaratz先生任总裁。 在1995年Sun虽然推出了Java,但这只是一种语言,而要想开发复杂的应用程序,必须要有一个的强大的开发库支持还行。 因此,Sun在1996年1月23日发布了JDK1.0。这个版本包括了两部分:运行环境(即JRE)和开发环境(即JDK)。在运行环境中包括了核心API、集成API,用户界面API,发布技术,Java虚拟机(JVM)五个部分。而开发环境还包括了编译Java程序的编译器(即javac)。 JDK1.0时代,JDK除了AWT(一种用于开发图形用户界面的API)外,其它的库并不完整。 Sun在推出JDK1.0后,紧跟着,Sun在1997年2月18日发布了JDK1.1。JDK1.1相对于JDK1.0最大的改进就是为JVM增加了JIT(即时编译)编译器。JIT和传统的编译器不同,传统的编译器是编译一条,运行完后再将其扔掉,而JIT会将经常用到的指令保存在内容中,在下次调用时就不需要再编译了。这样JDK在效率上有了非常大的提升。 Sun在推出JDK1.1后,接着又推出了数个JDK1.x版本。自从Sun推出Java后,JDK的下载量不断彪升,1997年,JDK的下载量突破了220,000,1998年,JDK的下载量已经超过了2,000,000。 虽然在1998年之前,Java被众多的软件企业所采用,但由于当时硬件环境和JVM的技术原因,它的应用却很有限。当时Java主要只使用在前端的Applet以及一些移动设备中。然而这并不等于Java的应用只限于这些领域。1998年是Java开始迅猛发展的一年。在这一年中Sun发布了JSP/Servlet、EJB规范以及将Java分成了J2EE、J2SE和J2ME。 标志着Java已经吹响了向企业、桌面和移动3个领域进军的号角。三、JAVA的青少年时期(19982004) 1998年,Java已经走过了3个年头。从JDK1.0到JDK1.1.8。JDK1.x经过了9个小版本的发展,已经初具规模。至此,它已经走出了摇篮,可以去独闯世界了。 1998年12月4日。Sun发布了Java的历史上最重要的一个JDK版本:JDK1.2。这个版本标志着Java已经进入Java2时代。这个时期也是Java飞速发展的时期。 在Java2时代Sun对Java进行了很多革命性的变化,而这些革命性的变化一直沿用到现在,对Java的发展形成了深远的影响。 JDK1.2自从被分成了J2EE、J2SE和J2ME三大块,得到了市场的强烈反响。 不仅如此,JDK1.2还对它的API分成了三大类。 1.核心API :由Sun公司制定的基本的API,所有的Java平台都应该提供。这就是我们平常所说的Java核心类库。 2.可选API:这是Sun为JDK提供的扩充API,这些API因平台的不同而不同。 3.特殊API:用于满足特殊要求的API。如用于JCA和JCE的第三方加密类库。 Java2除了上述的一些改进外,还增加了很多新的特性。其中最吸引眼球的当属Swing了。Swing是Java的另一个图形库。它不但有各式各样先进的组件,而且连组件风格都可抽换。在Swing出现后,很快就抢了AWT的风头。但Swing并不是为取代AWT而存在的,事实上Swing是建立在AWT之上的。就象JFace是建立在SWT之上一样。另外Java2还在多线程、集合类和非同步类上做了大量的改进。 从JDK1.2开始,Sun以平均2年一个版本的速度推出新的JDK。 2000年5月8日。Sun对JDK1.2进行了重大升级。推出了JDK1.3。Sun在JDK1.3中同样进行了大量的改进,主要表现在一些类库上(如数学运算、新的Timer API等)、在JNDI接口方面增加了一些DNS的支持、增加了JNI的支持,这使得Java可以访问本地资源了、支持XML以及使用新的Hotspot虚拟机代替了传统的虚拟机。 在JDK1.3时代,相应的应用程序服务器也得到了广泛的应用,如第一个稳定版本Tomcat3.x在这一时期得到了广泛的应用,WebLogic等商业应用服务器也渐渐被接受。时间如水、生命如歌。 2002年Sun在这一年的2月13日发布了JDK历史上最为成熟的版本:JDK1.4。在进入21世纪以来,曾经在.NET平台和Java平台之间发生了一次声势浩大的孰优孰劣的论战,Java的主要问题就是性能。 因此,这次Sun将主要精力放到了Java的性能上。 在JDK1.4中,Sun放言要对Hotspot虚拟机的锁机制进行了改进,使JDK1.4的性能有了质的飞跃。同时由于Compaq、Fujitsu、 SAS、 Symbian、 IBM等公司的参与,使JDK1.4成为发展最快的一个JDK版本。JDK1.4为止,我们已经可以使用Java实现大多数的应用了。 四、JAVA的壮年时期(2004至今) 虽然从JDK1.4开始,Java的性能有了显著的提高,但Java又面临着另一个问题,那就是复杂。虽然Java是纯面向对象语言,但它对一些高级的语言特性(如泛型、增强的for语句)并不支持。而且和Java相关的技术,如EJB2.x,也由于它们的复杂而很少有人问津。也许是Sun意识到了这一点。因此,2004年10月,Sun发布了我们期待已久的版本:JDK1.5,同时,Sun将JDK1.5改名为J2SE5.0。和JDK1.4不同,JDK1.4的主题是性能,而J2SE5.0的主题是易用。Sun之所以将版本号1.5改为5.0,就是预示着J2SE5.0较以前的J2SE版本有着很大的改过。 Sun不仅为J2SE5.0增加了诸如泛型、增强的for语句、可变数目参数、注释(Annotations)、自动拆箱(unboxing)和装箱等功能,同时,也更新的企业级规范,如通过注释等新特性改善了EJB的复杂性,并推出了EJB3.0规范。同时又针对JSP的前端界面设计而推出了JSF。这个JSF类似于ASP.NET的服务端控件。通过它可以很快地建立起复杂的JSP界面。 2006底Sun也再接再厉地推出了J2SE6.0的测试版,预计在2007年初将推出它的正式版。正象J2SE6.0的开发代号“野马(Mustang)”一样,我们已经隐约听到了野马的嘶鸣。据Sun发言人透露,J2SE6.0不仅在性能、易用性方面得到了前所未有的提高,而且还提供了如脚本、全新的API(Swing和AWT等API已经被更新)的支持。而且J2SE6.0是专为Vista而设计的,它在Vista上将会拥有更好的性能。在推出J2SE6.0的同时,J2SE7.0项目也已经启动。 在Java发展的十几年的时间里,经历了无数的风风雨雨。现在Java已经成为一种相当成熟的语言了。在这10年的发展中,Java平台吸引了数百万的开发者,在网络计算遍及全球的今天,更是有20亿台设备使用了Java技术。 作为Java技术的基础,J2SE功不可没,让我们期望J2SE伴随Java平台一路走好!五、JAVA各版的发布时间表 到现在为止我们已经重新走了一遍Java的历史轨迹。在这一部分,为了有一个总体的认识,让我们来看一看Java发展的时间表。*版本号-名称-中文名-发布日期*JDK 1.1.4 Sparkler 宝石 1997-09-12 JDK 1.1.5 Pumpkin 南瓜 1997-12-13 JDK 1.1.6 Abigail 阿比盖尔-女子名 1998-04-24 JDK 1.1.7 Brutus 布鲁图-古罗马政治家和将军 1998-09-28 JDK 1.1.8 Chelsea 切尔西-城市名 1999-04-08 J2SE 1.2 Playground 运动场 1998-12-04 J2SE 1.2.1 none 无 1999-03-30 J2SE 1.2.2 Cricket 蟋蟀 1999-07-08 J2SE 1.3 Kestrel 美洲红隼 2000-05-08 J2SE 1.3.1 Ladybird 瓢虫 2001-05-17 J2SE 1.4.0 Merlin 灰背隼 2002-02-13 J2SE 1.4.1 grasshopper 蚱蜢 2002-09-16 J2SE 1.4.2 Mantis 螳螂 2003-06-26 J2SE 5.0 (1.5.0) Tiger 老虎 2004-10 J2SE 6.0 (Beta) Mustang 野马 2006-04 从这个表中我们可以看出一个非常有意思的现象,就是JDK的每一个版本号都使用一个开发代号表示(就是表中的中文名)。而且从JDK1.2.2开始,主要版本(如1.3,1.4,5.0)都是以鸟类或哺乳动物来命名的. 而它们的bug修正版本(如1.2.2,1.3.1,1.4.2)都是以昆虫命名的。 六、Java的未来10年 在2005年的Java One开发者大会上,James Gosling作了题为“Java技术下一个10年贡献”的演讲。谈到未来Java的发展时,James Gosling提到了有关Java软件的性能和复杂性问题。鉴于许多机器运行着大量进程的实际情况,人们对线程模型投以越来越多的关注。随着人们对桌面应用的要求越来越高,系统将变得越来越复杂。他指出: “从工程的角度来看,未来10年内我们所面临的最大挑战就是复杂性问题,” James Gosling说, “目前,我们开展了许多工作以解决应用编程接口、语言以及工具中所涉及的复杂性问题。在工具和用户界面(UI)中都会遇到复杂性问题,Java技术设计人员必须处理好大小尺寸调整和国际化的问题。” 在这次大会上,James Gosling还同Java技术先驱,现任Kleiner, Perkins Caulfield and Byers合伙人的Bill Joy先生,Sun公司首席科学家John Gage先生,未来研究所主任Paul Saffo先生,Sun杰出工程师Guy Steele先生以及Applied Mindes公司主席及首席技术官Danny Hillis先生等一起探讨了讨论Java语言的过去和未来发展情况。 他们认为,Java技术提高了计算的“流动性”,就如同货币的发明提高了商品的流动性一样。无所不在的网络丰富了每个人的信息,就如同可以兑换的货币产生了财富一样。由于从前的网络是很慢的,所以计算被束缚在特定的计算机上,而这种情况将一去不复返了。 目前,全球Java开发人员已经超过450万,而与之相对应的是Java社区充满活力和创新精神,这正是Java下一个10年更加繁荣的保障。 为了保持Java的增长和推进Java社区的参与, Sun在Java One开发者大会上宣布开放Java核心源代码,以鼓励更多的人参与到社团活动中来,这是Sun为推进社团发展和维护Java技术兼容性而迈出的重要一步。 Sun公司总裁兼首席运营官Jonathan Schwartz先生指出,来自Java社团和IBM等全球技术合作伙伴两方面的支持,乃是Java技术在创新和社会进步上继续发挥重要作用的强有力的标志。技术开放和社团建设降低了技术应用的壁垒,其结果是为参与和增长创造了更多的商机,这就形成了价值上千亿美元的Java产业。 有很多人认为Java开源后,在众多开发人员的参与之下,Java会变得更加强大。随着Java和IT业界的关系变得更加紧密,Sun公司也将更容易卖出自己兼容Java良好的WEB服务器和操作系统。这个举动将会给软件开发群体带来新的活力,改善Sun公司的公众形象,并同时证明Sun可以成为一个开源社会的“良民”。 随着Java的开源,Java的未来似乎变得更加明朗。在未来,Java的应用范围有可能变得更广。Sun董事长麦克里尼在2006年的JavaOne会议上说,“全球有3/4的人还不能接入Internet,这对Java技术伙伴来说是一个巨大的经济机会。瘦客户机、微小的传感器以及其它Java驱动的小装置,可以帮助我们改善人们的生活。他希望Java社区通过他们的工作能够弥合数字鸿沟”。 Sun认为,数字媒体将是Java的下一个重点市场,同时,教育和健康将是未来Java发展过程中的两大重点应用领域。但愿Java的未来真能象Sun宣称的那样,成为我们未来生活的一部分。Java技术未来十年发展 阅读提示:美国旧金山时间2005年6月28日上午,在由全球10000多名开发人员出席的“2005 Java One开发者大会”上,Sun公司董事长兼首席执行官Scott McNealy先生向Java技术发明者、Sun公司副总裁James Gosling先生颁发了“终身成就奖”,这不仅是Sun公司对James Gosling先生十多年来创新性工作的充分肯定,同时更是Java经济全社会对James Gosling先生的十年贡献的肯定与感谢。经过十年的发展,Java技术已经成为世界上最卓越的企业应用和移动应用开发平台之一,历史上从没有过像Java这样的平台能够如此广泛地被应用,目前全球Java经济价值已经超过1,200. 美国旧金山时间2005年6月28日上午,在由全球10000多名开发人员出席的“2005 Java One开发者大会”上,Sun公司董事长兼首席执行官Scott McNealy先生向Java技术发明者、Sun公司副总裁James Gosling先生颁发了“终身成就奖”,这不仅是Sun公司对James Gosling先生十多年来创新性工作的充分肯定,同时更是Java经济全社会对James Gosling先生的十年贡献的肯定与感谢。经过十年的发展,Java技术已经成为世界上最卓越的企业应用和移动应用开发平台之一,历史上从没有过像Java这样的平台能够如此广泛地被应用,目前全球Java经济价值已经超过1,200亿美元。 Java经济蓬勃发展 James Gosling先生出生于加拿大的一个小村庄,1983年他获得了美国卡耐基梅隆大学的计算机学博士学位,毕业后曾经效力于IBM,后转而加盟Sun。1990年,Sun公司开始组建团队研究“绿色计划”,Sun认为计算机技术发展的一个趋势是数字家电之间的通讯。James Gosling开始负责为设备和用户之间的交流创建一种能够实现网络交互的语言。这种语言在1992年9月3日开始应用于Sun工作站的远程遥控。1995年5月,Sun公司正式发布Java编程语言及平台,由此引发全球Java开发与应用的热潮。从此,James Gosling先生也多了一个“Java之父”的称号。 十年来,Java编程语言及
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年高级护理实践技能考试指南及模拟题集
- 大型活动志愿者招募致辞模板
- 2025年机动车检测面试高频题
- 2025年企业经营管理总监管理智慧考核试卷及答案解析
- 2025年美术教育教师水平测试试题及答案解析
- 2025年旅游规划师专业技能测验试题及答案解析
- 2025年税务师事务所招聘考试题目解析与指导
- 2025年检察官资格考试试题及答案解析
- 2025年文联会计准则考试模拟题及题库
- 课件中使用花括号
- 2024-2025学年广西南宁四十七中九年级(上)开学数学试卷(含答案)
- 辽宁省大连市2024-2025学年高一历史下学期期末考试试题鸭历史
- 三高共管规范化诊疗中国专家共识
- DL-T-5759-2017配电系统电气装置安装工程施工及验收规范
- 2024-2030年中国系统级芯片(SoC)测试机行业市场发展现状及竞争格局与投资战略研究报告
- 的夫妻分居证明格式范例合集
- 女性绝经期自测表(Kupperman改良评分)
- 手术室俯卧位
- 种植牙二期修复
- EXCEL表格数据的统计分析课件
- 《快消品行业分析》课件
评论
0/150
提交评论