本科毕业论文-基于JAVA的聊天系统的设计与实现(2)

2019-03-03 14:40

内蒙古农业大学学士学位论文 2

树,于是建一个目录叫Oak,这就是Java语言的前身(后来发现Oak已是Sun公司另一个语言的注册商标,才改名为Java,即太平洋上一个盛产咖啡的岛屿的名字)。

Gosling在开始写Java时,并不局限于扩充语言机制本身,更注重于语言所运行的软硬件环境。他要建立一个系统,这个系统运行于一个巨大的、分布的、异构的网格环境中,完成各电子设备之间的通信与协同工作。Gosling在设计中采用了虚机器码(VirtualMachineCode)方式,即Java语言编译后产生的是虚拟机,虚拟机运行在一个解释器上,每一个操作系统均有一个解释器。这样一来,Java就成了平台无关语言。这和Gosling设计的SunNeWs窗口系统有着相同的技术味道。在NeWs中用户界面统一用Postscript描述,不同的显示器有不同的Postscript解释器,这样便保证了用户界面的良好的可移植性。

PatrickNaughton也是Sun公司的技术骨干,曾经是OpenWindows项目的负责人。当Naughton加入该小组后,整个工作进展神速。经过17个月的奋战,整个系统胜利完成。它是由一个操作系统、一种语言(Java)、一个用户界面、一个新的硬件平台、三块专用芯片构成的。通常情况下,这样的项目在Sun公司要75个人干三年。项目完成后,在Sun公司内部做了一次展示和鉴定,观众的反应是:在各方面都采用了崭新的、非常大胆的技术。许多参观者对Java留下了非常深刻的印象,特别得到Sun的两位领导人ScottMcNealy和BillJoy的关注,但Java的前途未卜。

Java语言的转折点

到了1994年,WWW已如火如荼地发展起来。Gosling意识到WWW需要一个中性的浏览器,它不依赖于任何硬件平台和软件平台,它应是一种实时性较高、可靠安全、有交互功能的浏览器。于是Gosling决定用Java开发一个新的Web浏览器。

这项工作由Naughton和JonathanPayne负责,到1994年秋天,完成了WebRunner的开发工作。WebRunner是HotJava的前身,这个原型系统展示了Java可能带来的广阔市场前景。WebRunner改名为HotJava,并于1995年5月23日发表后,在产业界引起了巨大的轰动,Java的地位也随之而得到肯定。又经过一年的试用和改进,Java1.0版终于在1996年年初正式发表。

Java带来的影响

Java虽出现的时间不长,但已被业界接受,IBM、Apple、DEC、Adobe、SiliconGraphics、HP、Oracle、Toshiba、Netscap和Microsoft等大公司已经购买了Java的许可证。Microsoft还在其Web浏览器Explorer3.0版中增加了对Java的支持。

另外,众多的软件开发商也开发了许多支持Java的软件产品。如:Borland

内蒙古农业大学学士学位论文 3

公司的基于Java的快速应用程序开发环境Latte;Metrowerks公司和NaturalIntelligence公司分别开发的基于Machintosh的Java开发工具;Sun公司的Java开发环境JavaWorkshop;Microsoft也开发出系列Java产品。数据库厂商如Illustra,Sybase,Versant,Oracle都在开发支持HTML和Java的CGI(CommonGatewayInterface)。在以网络为中心的计算时代,不支持HTML和Java,就意味着应用程序的应用范围只能限于同质的环境。

Intranet正在成为企业信息系统最佳的解决方案。它的优点表现在:便宜、易于使用和管理。用户不管使用何种类型的机器和操作系统,界面是统一的Web浏览器,而数据库、Web页面、应用程序(用Java编的applet)则存在WWW服务器上。开发人员只需维护一个软件版本,管理人员省去了为用户安装、升级、培训之苦,用户则只需一个操作系统,一个Internet浏览器足矣。

我们可以设想未来的计算方式,每个HomePage的实质是一个多媒体应用程序,这些程序用Java来开发。Java应用程序运行在异质的机器、异质的操作系统之上,甚至于电冰箱、烤面包箱、防盗电子设备之中,用Internet把所有的电子设备连接起来,通过TCP/IP进行信息的交流。Java应用程序之间既可以交换消息,也可以交换程序(一个Java的小应用程序applet)。或许有一天,我们可以在Netscape浏览器里查看电冰箱的温度,向烤面包箱发一个电子邮件。

Java的出现是计算机信息交换的一个重要里程碑。在单机时代,程序进程之间靠共享存储进行变量交换;在网络时代,运行在不同宿主机上的程序按网络协议进行无格式的消息(二进制字符流)交换,消息的语义由交换程序双方维护;在Java时代,运行在网络上的程序进程交换的是小应用程序(applet)。小应用程序是什么?它是一个对象,由一组属性和方法构成,是一个可执行的实体;不仅有数据的状态,而且有定义在数据上的操作。未来可能进行代表(Agent)交换,代理有一定的智能性,那便是信息交换的更高级阶段。

随着Internet的崛起、Java的诞生,巨型的、臃肿的应用软件开始向小型化发展,由众多“生活”在Internet上的小应用程序(applet)相互协作完成信息的处理与传递。Java会加速应用软件的小型化、网络化的趋势。随着Internet的发展,软件必然是面向“大众”,而不是“少数人”的奢侈品,薄利多销将是网络应用软件的重要特点。分布式对象技术保证了用多少,下载多少。 Java连同Internet,WWW正在改变应用软件的开发和使用方式,一切都要围绕着网络,围绕着平台无关。很多人认为,Word、Excel等传统的信息处理工具都必然走向萎缩,因为它们是单机时代的产物。信息的价值在于使用和共享,Internet和Web是信息的使用和共享最快捷、最便宜的方式,Word将演化成为Web写作工具,Excel则将演化成Web上的电子表格。

内蒙古农业大学学士学位论文 4

1.1.2 JAVA的特点

(一)JAVA的主要特点

Java语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、 安全、体系结构中立、可移植、高性能、多线程以及动态性。

1.简单性

Java语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。Java略去了运算符重载、多重继承等模糊的概念,,且通过实现自动垃圾收集大大简化了程序设计者的内存管理工作。另外,Java也适合于在小型机上运行,它的基本解释器及类的支持只有40KB左右,加上标准类库和线程的支持也只有215KB左右。库和线程的支持也只有215KB左右。

2.面向对象

Java语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏;而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用。

3.分布性

Java是面向网络的语言。通过它提供的类库可以处理TCP/IP协议,用户可以通过URL地址在网络上很方便地访问其它对象。

4.鲁棒性

Java在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生的错误。通过集成的面向对象的例外处理机制,在编译时,Java提示出可能出现但未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外, Java在编译时还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。

5.安全性

用于网络、分布环境下的Java必须要防止病毒的入侵。Java不支持指针, 一切对内存的访问都必须通过对象的实例变量来实现,这样就防止程序员使用 “特洛伊”木马等欺骗手段访问对象的私有成员,同时也避免了指针操作中容易 产生的错误。

6.体系结构中立

Java解释器生成与体系结构无关的字节码指令,只要安装了Java运行时系统,Java程序就可在任意的处理器上运行。这些字节码指令对应于Java虚拟 机中的表

内蒙古农业大学学士学位论文 5

示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平 台运行。

7.可移植性

与平台无关的特性使Java程序可以方便地被移植到网络上的不同机器。 同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,Java编译器是由Java语言实现的,Java运行时系统由标准C实现,这使得Java 系统本身也具有可移植性。

8.解释执行

Java解释器直接对Java字节码进行解释执行。字节码本身携带了许多编译时信息,使得连接过程更加简单。

9.高性能

和其它解释执行的语言如BASIC不同,Java字节码的设计使之能很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。

10.多线程

多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行为。

11.动态性

Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入 新的方法和实例变量而不会影响用户程序的执行。并且Java通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。

(二)JavaApplet

Java语言的特性使它可以最大限度地利用网络。Applet是Java的小应 用程序,它是动态、安全、跨平台的网络应用程序。JavaApplet嵌入HTML语言,通过主页发布到Internet。网络用户访问服务器的Applet时,这些Applet 从网络上进行传输,然后在支持Java的浏览器中运行。由于Java语言的安全机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态 地进行改变,而不仅仅是动画的显示和声音的播放。

(三)丰富的类库Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。

1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函 数处理等,可以用它简单地实现Java程序的运行平台。

2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。

内蒙古农业大学学士学位论文 6

3.输入输出包用统一的\流\模型来实现所有格式的I/O,包括文件系统、 网络、输入

4.低级网络包用于实现Socket编程。

5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件, 包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。

6.网络包支持Internet的TCP/IP协议,提供了与In-ternet的接口。 它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。

(四)Java和C、C++对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++ 相同的传统,使得熟悉C、C++的程序员能很方便地进行编程。同时,Java为 了实现其简单、鲁棒、安全等特性,也摒弃了C和C++中许多不合理的内容。

1.全局变量

Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定 义公用、静态的变量来实现一个全局变量。例如:

ClassGlobalVar{ public static global_var; }

在类GlobalVar中定义变量global_var为public static,使得其它类 可以访问和修改该变量。 Java对全局变量进行了更好的封装。而在C和C++中,依赖于不加封装 的全局变量常常造成系统的崩溃。

2.Goto

Java不支持C、C++中的goto语句,而是通过例外处理语句try,Catch, final等来代替C、C++中用goto来处理遇到错误时跳转的情况,使程序更可读 且更结构化。

3.指针

指针是C、C++中最灵活,也是最容易产生错误的数据类型。由指针所进行 的内存地址操作常会造成不可预知的错误,同时通过指针对某个内存地址进行显 式类型转换后,可以访问一个C++中的私有成员,从而破坏安全性,造成系统的 崩溃。而Java对指针进行完全的控制,程序员不能直接进行任何指针操作,例如 把整数转化为指针,或者通过指针释放某一内存地址等。同时,数组作为类在Java 中实现,良好地解决了数组访问越界这一C、C++中不作检查的错误。

4.内存管理

在C中,程序员通过库函数malloc()和free()来分配和释放内存,C++ 中则通过运算符new和delete来分配和释放内存。再次释放已释放的内存块或 未被分配的内存块,会造成系统的崩溃;同样,忘记释放不再使用的内存块也 会逐渐耗尽系统资源。而在Java中,所有的数据结构都是对象,通过运算符new 为它们分配内存堆。通过new得到对象的处理权,而实际分配给对象的内存可能 随程序运行而改


本科毕业论文-基于JAVA的聊天系统的设计与实现(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:美术教案一年级上册(浙美版)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: