课外天地 李树青学习天地Java程序语言课件 → [转帖]Java产生的历史与现状(摘自于网上)


  共有16024人关注过本帖树形打印复制链接

主题:[转帖]Java产生的历史与现状(摘自于网上)

帅哥哟,离线,有人找我吗?
admin
  1楼 博客 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 管理员
等级:管理员 帖子:1940 积分:26616 威望:0 精华:34 注册:2003/12/30 16:34:32
[转帖]Java产生的历史与现状(摘自于网上)  发帖心情 Post By:2006/2/26 22:27:59 [只看该作者]

1 Java的历史
Java来自于Sun公司的一个叫Green的项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可以把E-mail发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交流。开始,准备采用C++,但C++太复杂,安全性差,最后基于C++开发一种新的语言Oak(Java的前身),Oak是一种用于网络的精巧而安全的语言,Sun公司曾依此投标一个交互式电视项目,但结果是被SGI打败。可怜的Oak几乎无家可归,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,他们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。Java的取名也有一趣闻,有一天,几位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖啡,有一个人灵机一动说就叫Java怎样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。

1995年5月23日 Sun在SunWorld'95上正式发布Java和HotJava浏览器。
1995年8月 Netscape获得Java许可证。
1995年9月 Sun宣布将提供Java开发工具。
1995年10月 Oracle公司、Borland公司获得Java许可证。
1995年12月 SGI公司、Adobe公司、IBM公司、AT&T公司、Intel公司获得Java许可证。
Sun和Netscape发布JavaScript──一种基于Java语言的脚本语言,可供非编程员使用。
Sun、Netscape和SGI宣布缔结软件联盟,以开发Java和Internet三维和多媒体交互性工具。
1996年1月 Sun宣布成立新的业务部门──JavaSoft部,以开发、销售并支持基于Java技术的产品,由AlanBaratz先生任总裁。
Sun推出Java开发工具包JDK(JavaDevelopmentKit)1.0,为开发人员提供用来编制Java应用软件所需的工具。
1996年2月 Sun发布Java芯片系列,包括picoJava,microJava和UltraJava。
Sun推出Java数据库联接JDBC(JavaDatabaseConnectivity)数据库API。
1996年3月微软公司、NetManage公司获得Java许可证。
Sun推出JavaWorkShop。
1996年4月 SCO公司、苹果电脑公司(Apple)获得Java许可证。
NEC公司获得Java处理器技术许可证。
Sun宣布苹果电脑、HP、日立、IBM、微软、Novell、SiliconGraphics、SCO、Tamdem等公司将把Java平台嵌入到其操作系统中。
1996年5月 HP公司、Sybase公司获得Java许可证。
Addison-Wesley和Sun联合推出Java应用编程界面(JavaApplicationProgrmmingInterface,Vol1&2)和Java编程语言。
北方电讯公司宣布把Java技术和Java微处理器应用到其下一代电话机中的计划。
5月29日,Sun在旧金山举行第一届JavaOne世界Java开发者大会,业界人士踊跃参加。Sun在大会上推出一系列Java平台新技术:如JavaMediaAPIs、CommerceAPIs、SecurityAPIs、ServletAPIs、ManagementAPIs等以及JavaRMI和JavaIDL、JavaOS、JavaBeans、新的HotJava开发环境等。
Sun发布HotJava,这是一套Java类库,可供开发人员编制可按需剪裁的动态联网应用软件和用户环境。
Sun发布JavaOS,这是一种非常紧凑的操作系统,用来直接在从网络计算机一直到寻呼机的微处理器上运行Java应用软件。
1996年7月 GemstoneSystems公司、OctelCommunications公司获得Java许可证。
1996年8月 JavaWorkShop成为Sun通过互联网提供的第一个产品。
1996年9月三菱日本公司等公司获得Java许可证。
Addison-Wesley和Sun推出Java虚拟机规范和Java类库。
1996年10月德州仪器等公司获得Java许可证。
由于业界通力合作为开发人员提供强有力的平台独立部件体系结构,Sun提前完成JavaBeans规范并发布。
Sun发布第一个JavaJIT(Just-In-Time)编译器,并打算在JavaWorkShop和Solaris操作系统中加入JIT。
10月29日,Sun发布Java企业计算技术,包括:JavaStation网络计算机、65家公司发布的85个Java产品和应用、7个新的Java培训课程和Java咨询服务、基于Java的Solstice互联网邮件软件、新的Java开发者支持服务、演示HotJavaViews、JavaTutor、完成JavaCardAPI等。
Sun演示HotJavaViews──第一个专供Java网络计算机使用的用户环境。HotJavaViews是经过优化的、可为那些将其绝大部分计算时间花费在很少关键应用软件的工作人员提供高效Webtop环境。
Sun宣布完成JavaCard应用编程界面(API)规范,这是智能卡使用的第一个开放API。JavaCard规范将把Java能力赋予全世界亿万张智能卡。
1996年11月 IBM公司获得JavaOS和HotJava许可证。
Novell公司获得JavaWorkShop许可证。
Sun和IBM宣布双方就提供Java化的商业解决方案达成一项广泛协议,IBM同意建立第一个Java检验中心。
Sun交付其第一批JavaStation网络计算机。JavaStation网络计算机被《Information周刊》评为"1996年最重要产品"。
1996年12月 Xerox等公司获得Java或JavaOS许可证。
Sun发布JDK1.1、Java商贸工具包、JavaBeans开发包及一系列JavaAPIs。
Sun推出一个新的JavaServer产品系列,其中包括JavaWebServer、JavaNCServer和JavaServerToolkit。
Sun发布100%纯Java计划,得到百家公司的支持。
1997年1月 SAS等公司获得Java许可证。
Sun交付完善的JavaBeans开发包,这是在确定其规范后不到8个月内完成的。
1997年2月 Gemplus公司、ElectronicToolsCompany公司获得Java许可证,北方电讯公司获得JavaOS许可证。
Sun和ARM公司宣布同意使JavaOS能运行在ARM公司的RISC处理器架构上。
Informix公司宣布在其UniversalServer和其他数据库产品上支持JDK1.1。
Netscape公司宣布其NetscapeCommunicator支持所有Java化的应用软件和核心APIs。
1997年3月 HP公司获得JavaWorkShop许可证,用于HP-UX操作系统。
西门子AG公司等公司获得Java许可证。
日立半导体公司、Informix公司等公司获得JavaOS许可证。
Novell公司获得JavaStudio许可证。
Sun发售JavaOS1.0操作系统,这是一种在微处理器上运行Java环境的最小、最快的方法,提供给Sun的JavaOS许可证持有者使用。
Sun发售HotJavaBrowser1.0,这是一种Java浏览环境,可以方便地按剪裁来编制专用的信息应用软件,如信息亭、客户自助台和打上公司牌号的网络应用软件。
Sun推出JDK1.1.1。
3月17日Sun向国际标准化组织的第一联合技术委员会(JTC-1)申请成为Java的公开有效规范(PAS)的提案者。
1997年4月 OSFResearch(OpenGroup)公司、Lucent公司获得Java许可证。
Corel公司获得JavaStudio许可证。
4月2日Sun在美国旧金山举行第二届JavaOne开发应用者大会,有超过10,000人参加。
Sun正式开展100%纯Java计划。
Sun发布PersonalJavaTM和EmbeddedJavaTM,表明Java同样可在PDA(个人数字助理)、复印机和智能卡中很好发挥作用。
Sun为企业计算推出全面的Java平台,包括一种新技术EnterpriseJavaBeans。它使用Java来突破建立端对端商务解决方案的复杂性。
Sun宣布JavaPCTM计划。JavaPC是一种低价位软件技术,可把老的DOSPC机变换成网络计算机,既简单又方便。
Sun与LG半导体公司协议共同开发用于网络计算机及其他消费设备的Java处理器。
Sun与Netscape宣布共同合作以提供Java基础类库。
Sun与RockwellCollins公司宣布将共同开发用于消费类产品的Java处理器核心技术。
Sun与东芝公司协议共同开发一种低功耗的Java化处理器。
Sun发布JavaStudio和JavaWorkShop2.0。
Sun发布JavaSound、JavaAdvancedImaging和JavaInputMethodAPIs。这三种新的应用编程界面使特性丰富的Java平台获得额外的功能。
摩托罗拉公司宣布其PowerPC微处理器可运行JavaOS操作系统。
Bull公司获得用于端对端解决方案的Java技术许可证,适用于智能卡、终端以及POS设备等。
1997年5月 TriTeal公司获得HotJavaBrowser许可证。
菲利浦智能卡与系统公司获得包括JavaCard的Java许可证。
苹果电脑公司宣布将把Java平台作为其PhapsodyOS操作系统发展战略的中心组成部分。
Sun推出JDK1.1.2。
1997年6月三星、3Com等公司获得JavaOS许可证。
Sun发售JavaWebServer1.0。
Sun设在瑞士日内瓦的Sun新技术应用展示中心启用,用于展示Java计算解决方案。
Sun推出Java技术API(JTAP)规范1.0,得到Lucent、IBM、Intel、Nortel、Novell等公司的支持。
Sun推出JavaServer工具包。
1997年7月 Sun推出JDK1.1.3。
Addison-Wesley和Sun发布JavaFAQ。
Sun与西门子公司签署协议,将Java嵌入到智能卡芯片。
Sun发布JavaCard2.0规范。
Sun推出JavaWebServer1.0.1。
Sun与LG半导体公司签署协议共同开发Java处理器。
Sun合并Diba公司,以加速开发Java化的家用信息产品。
1997年8月 IBM公司获得SunTestJava测试工具许可证。
截止到8月21日,有61个应用软件获得100%纯Java认证;另有100多个应用程序等待测试。
Sun发布JavaBlend,这种新技术可使软件开发者能把Java应用软件与数据库自动结合起来。
Sun签署合并Integrity公司的协议。合并后的Integrity公司加入SunSoft部门,将在面向对象编程、智能卡及虚拟机等方面发挥重要作用。
Alcatel公司、Nortel公司和三星公司选择PersonalJava作为其网络电话的标准平台。网络电话除电话功能外,还可以发电子邮件,连接因特网和浏览万维网等。 IBM公司、Netscape公司和Sun共同建立一个新的Java移植和调试中心,以提高Java的性能,保证及时、不断地向Java开发商和用户提供Java技术解决方案。来自这三个公司的专家将在该中心携手工作。
1997年9月在实时操作系统(RTOS)具领先地位的生产商Acorn公司、Chorus公司、GeoWorks公司、LucentTechnology公司、Microtec公司、Micreware公司、Qnx公司和WindRiverSystem公司获得在其消费电子产品中使用PersonalJava(个人Java)和EmbeddedJava(嵌入Java)技术的许可证,用以生产具有Java解决方案软件的消费电子产品(如电视顶置盒、网络电话、寻呼机等)。
1997年10月 Sun向美国加州地方法院起诉微软公司违反两公司就微软使用Java技术所签定的合同,指控微软公司违反了合同中承诺向用户提供Java兼容产品的条款。Sun要求微软公司停止侵犯Java兼容标志,放弃误导Java开发者、阻碍他们开发完全兼容Java技术的产品的作法。
Sun向公众公开Sun与微软公司就开发销售含有SunJava技术的产品和使用兼容Java标志的合同文本。
Sun宣布已全面完成JavaCardAPI规范,并上网供用户下载。
Sun发布世界上第一个Java微处理器microJava701芯片的技术细节,并将在1998年下半年大批量生产该芯片。
Sun正式推出JavaStudio。这是一种动态Java创作工具,可使非编程员直观地编制Java小程序和应用程序。
1997年11月 Sun宣布支持Lotus公司新的纯Java化的eSuiteWorkplace办公软件。eSuiteWorkplace是第一个综合性的"瘦客户"高效成套软件,包括字处理、电子表格、电子邮件及日程安排等组成部分,完全用Java语言编写,可高效运行于JavaStation网络计算机。 IBM公司、Lotus公司、Oracle公司和Sun宣布共同开发Java化的台式机规范,这将首次在业界统一台式网络计算环境,使NC和PC能无碍地运行基于单一规范的任何应用程序,即"网上规范"。
Sun宣布与荷兰TeleficationBV(一家硬件、软件及通信设备认证中心)合作,建立欧洲100%纯Java测试认证中心,为欧洲参加100%纯Java计划的公司提供服务。
国际标准化组织11月17日宣布,其第一联合技术委员会(JTC-1)以压倒多数的投票结果,批准Sun公司作为Java公开有效规范(PAS)提案者的申请。在参加投票的24个国家中,20票赞成,2票反对,2票弃权。这将使Java技术走向法律标准。

2、Java的现状
Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发,它的平台无关性直接威胁到Wintel的垄断地位。一时间,“连Internet,用Java编程”,成为技术人员的一种时尚。虽然新闻界的报导有言过其实,但Java作为软件开发的一种革命性的技术,其地位已被确立,这表现在以下几个方面:
1.计算机产业的许多大公司购买了Java的许可证,包括IBM,Apple,DEC,Adobe,SiliconGraphics,HP,Oracel,Toshiba,以及最不情愿的Microsoft。这一点说明,Java已得到了工业界的认可。
2.众多的软件开发商开始支持Java的软件产品。例如:Borland公司正在开发的基于Java的快速应用程序开发环境Latte,产品已在1996年中期发布。Borland公司的这一举措,推动了Java进入PC机软件市场。Sun公司自己的Java开发环境JavaWorkshop已经发布。数据库厂商如:Illustra,Sysbase,Versant,Oracle都在开发CGI接口,支持HTML和Java。今天是以网络为中心的计算时代,不支持HTML和Java,应用程序的应用范围只能限于同质的环境(相同的硬件平台)
3.Intranet正在成为企业信息系统最佳的解决方案,而其中Java将发挥不可替代的作用。Intranet的目的是把Internet用于企业内部的信息系统,它的优点表现在:便宜,易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的Intrnet浏览器,而数据库、Web页面、应用程序(用Java编的Applet)则存在WWW服务器上,无论是开发人员,还是管理人员,抑或是用户都可以受益于该解决方案。Java语言正在不断发展和完善,Sun公司是主要的发展推动者,较通用的编译环境有JDK(JavaDevelopKit)与JWS(JavaWorkshop)。还有很多其他公司正在开发Java语言的编译器与集成环境,预计不久Java语言的正确性与效率都将会提高,用户用Java编程和现在用C++编程更方便。

3、Java语言的特点
Java到底是一种什么样的语言呢?Java是一种简单的面象对象的、分布式的、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的语言。
3、1.简单。Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:
1.Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。2.Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。3.Java提供了丰富的类库。
3、2.面向对象面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于SmallTalk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了SmallTalk。
3、3.分布式。Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
3、4.健壮。Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验。
3、5.结构中立。另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等。Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
3、6.安全。Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
3、6、1 Byte-code校验。如果byte-code通过代码校验,没有返回错误,我们知道:代码没有堆栈上溢出和下溢出所有操作代码参数类型都是正确的没有发生非法数据转换,如将整数转换成指针。访问对象操作是合法的。
3、6、2 类装载。ClassLoader通过将本机类与网络资源类的名称分开,来保持安全性。因为调入类时总要经过检查,这样避免了特洛伊木马现象的出现。从网络上下载的类被调进一个与源相关的私有的名字域。当一个私有类访问另一个类时,build-in(本机类)首先被检查,然后检查相关的类。这样就避免了破坏本机类情况的出现。
3、7.可移植。同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。例如在Windows3.1中整数(Integer)为16bits,在Windows95中整数为32bits,在DECAlpha中整数为64bits,在Intel486中为32bits。通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。Java语言的基本数据类型及其表示方式如下:byte8-bit二进制补码short16-bit二进制补码int32-bit二进制补码long64-bit二进制补码float32-bitIEEE754浮点数double32-bitIEEE754浮点数char16-bitUnicode字符在任何Java解释器中,数据类型都是依据以上标准具体实现的。因为几乎目前使用的所有CPU都能支持以上数据类型、8~64位整数格式的补码运算和单/双精度浮点运算。Java编译器本身就是用Java语言编写的。Java运算系统的编制依据POSIX方便移植的限制,用ANSIC语言写成。Java语言规范中也没有任何"同具体实现相关"的内容。
3、8.解释执行。Java解释器(运行系统)能直接运行目标代码指令。链接程序通常比编译程序所需资源少,所以程序员可以在创建源程序上花上更多的时间。
3、9.高性能。如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。
3、10.多线程。Java提供的多线程功能使得在一个程序里可同时执行多个小任务。线程(有时也称小进程)是一个大进程里分出来的小的独立的进程。因为Java实现的多线程技术,所以比C和C++更键壮。多线程带来的更大的好处是更好的交互性能和实时控制性能。当然实时控制性能还取决于系统本身(UNIX,Windows,Macintosh等),在开发难易程度和性能上都比单线程要好。任何用过当前浏览器的人,都感觉为调一副图片而等待是一件很烦恼的事情。在Java里,你可用一个单线程来调一副图片,而你可以访问HTML里的其它信息而不必等它。
3、11.动态。Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。在C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从如下几方面采取措来解决这个问题。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。Java还简化了使用一个升级的或全新的协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,没关系,Java能自动下载你所需要的功能程序。

4、与C和C++语言的异同
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++还是被大家所接受,所以Java设计成C++形式,让大家很容易学习。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一个很有用的功能,Java去掉了以下几个C和C++功能和特征:指针运算结构typedefs#define需要释放内存全局变量的定义这个功能都是很容易引起错误的地方。

5、Java的应用简介
5.1 Web浏览。Web浏览是现在国际网甚至局域网的主要使用方式。文档能很容易地显示文本和各种图片,他还能提供超文本链接。浏览器调用HTML语言写的文档,HTML/WWW浏览器技术只限于文本和图象。如果你想播放一种声音或运行一个演示程序,你不得不下载那个文件并用你本机上的能理解和运行那个文件格式的程序来播放它。Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400baud线上传输视频图象时,HotJava将能显示这些视频。
5.2 网络应用系统。Java是一种与平台无关的语言,因此用Java开发的网络应用系统可以在各种平台上运行,大大增加了开发效率,减少重复劳动。而且,Java集成的网络功能有利于开发网络应用系统。

小结:
1.Java的产生与流行是当今internet发展的客观要求
2.java是一门各方面性能都很好的编程语言,它的基本特点是简单、面象对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的。适合在internet环境上开发应用系统。
3.java可以制作大部分网络应用程序系统,而且与当今流行的WWW浏览器结合得很好。

[此贴子已经被作者于2010-12-12 08:06:52编辑过]

 回到顶部