


全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Java技术的现状和发展一、 Java技术的背景1991年,SUN Micro System公司的 James Gosling、 Bill Joe等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak 的软件 (即一种橡树的名字),但当时并没有引起人们的注意,直到 1994年下半年,Internet的迅猛发展,环球信息网 WWW的快速增长,促进了 Java语言研制的进展,使得它逐渐成为 Internet上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了Java语言的使用权,如 Mi-corset、IBM、Netscape、Novell、Apple、DEC、SGI等,因此,Java语言被美国的著名杂志 PC Magazine评为 1995 年十大优秀科技产品,(计算机类就此一项入选 ),随之大量出现了用 Java编写的软件产品,受到工业界的重视与好评,认为“Java是八十年代以来计算机界的一件大事”,微软总裁比尔盖茨在悄悄地观察了一段时间后,不无感慨地说:“Java是长时间以来最卓越的程序设计语言”,并确定微软整个软件开发的战略从 PC单机时代向着以网络为中心的计算时代转移,而购买 Java则是他的重大战略决策的实施部署。 因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。二、 Java现有的较流行的技术1JDBC(Java Database Connectivity)提供连接各种关系数据库的统一接口,作为数据源,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API 编写数据库应用程序,同时,JDBC也是个商标名。 2EJB(Enterprise JavaBeans)使得开发者方便地创建、部署和管理跨平台的基于组件的企业应用。3Java RMI(Java Remote Method Invocation)用来开发分布式Java应用程序。一个Java对象的方法能被远程Java虚拟机调用。这样,远程方法激活可以发生在对等的两端,也可以发生在客户端和服务器之间,只要双方的应用程序都是用Java写的。 4Java IDL(Java Interface Definition Language) 提供与CORBA(Common Object Request Broker Architecture)的无缝的互操作性。这使得Java能集成异构的商务信息资源。 5JNDI(Java Naming and Directory Interface)提供从Java平台到的统一的无缝的连接。这个接口屏蔽了企业网络所使用的各种命名和目录服务。 6JMAPI(Java Management API)为异构网络上系统、网络和服务管理的开发提供一整套丰富的对象和方法。 7JMS(Java Message Service)提供企业消息服务,如可靠的消息队列、发布和订阅通信、以及有关推拉(Push/Pull)技术的各个方面。 8JTS(Java transaction Service)提供存取事务处理资源的开放标准,这些事务处理资源包括事务处理应用程序、事务处理管理及监控。 9JMF(Java Media Framework API), 她可以帮助开发者把音频、视频和其他一些基于时间的媒体放到Java应用程序或applet小程序中去,为多媒体开发者提供了捕捉、回放、编解码等工具,是一个弹性的、跨平台的多媒体解决方案。 10Annotation(Java Annotation),在已经发布的JDK1.5(tiger)中增加新的特色叫Annotation。Annotation提供一种机制,将程序的元素如:类,方法,属性,参数,本地变量,包和元数据联系起来。这样编译器可以将元数据存储在Class文件中。这样虚拟机和其它对象可以根据这些元数据来决定如何使用这些程序元素或改变它们的行为。 三、 Java和C+比较,它的优势和不足优势:对于变量声明、参数传递、操作符、流控制等,Java使用了和 C、C+相同的传统,使得熟悉 C、C+的程序员能很方便地进行编程。同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C+中许多不合理的内容。 1.全局变量 Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:Class GlobalVar Public static global_var; 在类 GlobalVar中定义变量 global_var为 public stat-ic,使得其它类可以访问和修改该变量。Java对全局变量进行了更好的封装。而在 C和 C+中,依赖于不加封装的全局变量常常造成系统的崩溃。 2. Goto Java不支持 C、C+中的 go to语句,而是通过例外处理语句 try,Catch,final等来代替 C、C+中用 go to来处理遇到错误时跳转的情况,使程序更可读且更结构化。 3.指针 指针是 C、 C+中最灵活,也是最容易产生错误的数据类型。由指针所进行的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显式类型转换后,可以访问一个 C+中的私有成员,从而破坏安全性,造成系统的崩溃。而 Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java 中实现,良好地解决了数组访问越界这一C、C+中不作检查的错误。 4.内存管理 在 C中,程序员通过库函数 malloc()和 free()来分配和释放内存,C+中则通过运算符 new和 delete来分配和释放内存。再次释放已释放的内存块或未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也会逐渐耗尽系统资源。而在 Java中,所有的数据结构都是对象,通过运算符new 为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能随程序运行而改变,Java对此自动地进行管理并且进行垃圾收集,有效防止了由于程序员的误操作而导致的错误,并且更好地利用了系统资源。 5.数据类型的支持 在 C、C+中,对于不同的平台,编译器对于简单数据类型如 int,float 等分别分配不同长度的字节数,例如:int在 IBM PC中为 16位,在 VAX-11中为32位,这导致了代码的不可移植性,但在 Java中,对于这些数据类型总是分配固定长度的位数,如对 int型,它总占 32位,这就保证了 Java的平台无关性。 6.类型转换 在 C、C+中,可以通过指针进行任意的类型转换,常常带来不安全性,而 Java中,运行时系统对对象的处理要进行类型相容性检查,以防止不安全的转换。 7.头文件 C、C+中用头文件来声明类的原型以及全局变量、库函数等,在大的系统中,维护这些头文件是很困难的。而 Java不支持头文件,类成员的类型和访问权限都封装在一个类中,运行时系统对访问进行控制,防止对私有成员的操作。同时,Java中用 import语句来与其它类进行通讯,以便使用它们的方法。 8.结构和联合 C、 C+中的结构和联合中所有成员均为公有,这就带来了安全性问题。Java中不包含结构和联合,所有的内容都封装在类中。 9.预处理 C、 C+中用宏定义来实现的代码给程序的可读性带来了困难。在 Java 中,不支持宏,它通过关键字 final来声明一个常量,以实现宏定义中广泛使用的常量定义。不足:1.框架太多,没有与之对应的IDE工具。2.标准各不相同,导致开发周期变长。3.虽然万能的struts spring hibernate可以到处使用,但是运行速度却不如jsp/servlet 。4.和MS的VS相比,易用性不如VS。四、 Java的发展前景首先在JDK的商业版本方面,Oracle将会继续深入挖掘Java的商业利益,与其固有产品进行更深入的整合。在社区版本方面,Oracle将与Java开发者一起探讨和研发Java的技术。这里需要特别提到的一个产品是Oracle BerkeleyDB,该产品是Oracle一直支持的一个开源非关系数据库产品,在NOSQL大行其道的今天,如果Oracle能够将BerkeleyDB与Java进行深入整合,将会为Java带来更多的活力和生命。从James Gosling的表现来看,他似乎与Oracle之间已经达成某种谅解,并且有进一步合作的可能性。五、 总结Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Mi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘之《幼儿教师招聘》复习提分资料及参考答案详解【综合题】
- 教师招聘之《幼儿教师招聘》综合检测提分含答案详解【b卷】
- 编程小明星秀场创新创业项目商业计划书
- 电网故障抢修智能调度系统创新创业项目商业计划书
- 教师招聘之《幼儿教师招聘》练习题(一)含答案详解(模拟题)
- 教师招聘之《幼儿教师招聘》检测卷讲解附参考答案详解(轻巧夺冠)
- 2025年教师招聘之《小学教师招聘》通关练习题库包及参考答案详解(能力提升)
- 教师招聘之《小学教师招聘》题库附答案详解(综合卷)
- 教师招聘之《小学教师招聘》考试黑钻押题【易错题】附答案详解
- 2025年新能源汽车制造产业链上下游企业合作模式研究报告
- 广东省安装工程综合定额(2018)Excel版
- 老年患者麻醉专家共识
- 棋牌室员工管理制度
- 《中华人民共和国慈善法》培训解读课件
- CJ/T 249-2007城镇污水处理厂污泥处置混合填埋泥质
- 2025年版简易房屋租赁合同模板
- 医疗机构从业人员行为规范培训
- 2025年4月自考00908网络营销与策划试题及答案
- 医疗背景下的园艺景观规划设计方法
- 2025年行测真题及答案详解
- 《戏剧影视表演剧目创作》课件-1.任务1 了解时代背景与规定情境
评论
0/150
提交评论