以下不是java平台的特性的是(java三大特性及其特点)
各位老铁们好,相信很多人对以下不是java平台的特性的是都不是特别的了解,因此呢,今天就来为大家分享下关于以下不是java平台的特性的是以及java三大特性及其特点的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
Java语言主要特点有哪些
1.简单
Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。Java语言的简单性主要体现在以下三个方面:
1) Java的风格类似于C++,因而C++程序员是非常熟悉的。从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。
2) Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
3) Java提供了丰富的类库。
2.面向对象
面向对象可以说是Java最重要的特性。Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。Java支持静态和动态风格的代码继承及重用。单从面向对象的特性来看,Java类似于Small Talk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了Small Talk。
3.分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
4.健壮
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大缩短了开发Java应用程序的周期。Java提供Null指针检测数组边界检测异常出口字节代码校验。
5.结构中立
另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。只要有Java运行系统的机器都能执行这种中间代码。现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
6.安全
Java的安全性可从两个方面得到保证。一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。Java语言在你的机器上执行前,要经过很多次的测试。它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
7.可移植的
这句话一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。大多数编译器产生的目标代码只能运行在一种CPU上(如Intel的x86系列),即使那些能支持多种CPU的编译器也不能同时产生适合多种CPU的目标代码。如果你需要在三种CPU(如x86、SPARC和MIPS)上运行同一程序,就必须编译三次。
但JAVA编译器就不同了。JAVA编译器产生的目标代码(J-Code)是针对一种并不存在的CPU--JAVA虚拟机(JAVA Virtual Machine),而不是某一实际的CPU。JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。
虚拟机的概念并不AVA所特有的:加州大学几年前就提出了PASCAL虚拟机的概念;广泛用于Unix服务器的Perl脚本也是产生与机器无关的中间代码用于执行。但针对Internet应用而设计的JAVA虚拟机的特别之处在于它能产生安全的不受病毒威胁的目标代码。正是由于Internet对安全特性的特别要求才使得JVM能够迅速被人们接受。当今主流的操作系统如OS/2、MacOS、Windows95/NT都已经或很快提供对J-Code的支持。
作为一种虚拟的CPU,JAVA虚拟机对于源代码(Source Code)来说是独立的。我们不仅可以用JAVA语言来生成J-Code,也可以用Ada95来生成。事实上,已经有了针对若干种源代码的J-Code编译器,包括Basic、Lisp和Forth。源代码一经转换成J-Code以后,JAVA虚拟机就能够执行而不区分它是由哪种源代码生成的。这样做的结果就是CPU可移植性。将源程序编译为J-Code的好处在于可运行于各种机器上,而缺点是它不如本机代码运行的速度快。
同体系结构无关的特性使得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语言规范中也没有任何"同具体实现相关"的内容。
8.解释的
Java解释器(运行系统)能直接运行目标代码指令。链接程序通常比编译程序所需资源少,所以程序员可以在创建源程序上花上更多的时间。
9.高性能
如果解释器速度不慢,Java可以在运行时直接将目标代码翻译成机器指令。Sun用直接解释器一秒钟内可调用300,000个过程。翻译目标代码的速度与C/C++的性能没什么区别。
10.多线程
多线程功能使得在一个程序里可同时执行多个小任务。线程--有时也称小进程--是一个大进程里分出来的小的独立的进程。因为Java实现的多线程技术,所以比C和C++更键壮。多线程带来的更大的好处是更好的交互性能和实时控制性能。当然实时控制性能还取决于系统本身(UNIX,Windows,Macintosh等),在开发难易程度和性能上都比单线程要好。任何用过当前浏览器的人,都感觉为调一副图片而等待是一件很烦恼的事情。在Java里,你可用一个单线程来调一副图片,而你可以访问HTML里的其它信息而不必等它。
11.动态
Java的动态特性是其面向对象设计方法的发展。它允许程序动态地装入运行过程中所需要的类,这是C++语言进行面向对象程序设计所无法实现的。在C++程序设计过程中,每当在类中增加一个实例变量或一种成员函数后,引用该类的所有子类都必须重新编译,否则将导致程序崩溃。Java从如下几方面采取措来解决这个问题。Java编译器不是将对实例变量和成员函数的引用编译为数值引用,而是将符号引用信息在字节码中保存下传递给解释器,再由解释器在完成动态连接类后,将符号引用信息转换为数值偏移量。这样,一个在存储器生成的对象不在编译过程中决定,而是延迟到运行时由解释器确定的。这样,对类中的变量和方法进行更新时就不至于影响现存的代码。解释执行字节码时,这种符号信息的查找和转换过程仅在一个新的名字出现时才进行一次,随后代码便可以全速执行。在运行时确定引用的好处是可以使用已被更新的类,而不必担心会影响原有的代码。如果程序连接了网络中另一系统中的某一类,该类的所有者也可以自由地对该类进行更新,而不会使任何引用该类的程序崩溃。Java还简化了使用一个升级的或全新的协议的方法。如果你的系统运行Java程序时遇到了不知怎样处理的程序,没关系,Java能自动下载你所需要的功能程序。四.与C和C++语言的异同 Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++还是被大家所接受,所以Java设计成C++形式,让大家很容易学习。Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一个很有用的功能,Java去掉了以下几个C和C++功能和特征:指针运算结构typedefs#define需要释放内存全局变量的定义这个功能都是很容易引起错误的地方。
12. Unicode
Java使用Unicode作为它的标准字符,这项特性使得Java的程序能在不同语言的平台上都能撰写和执行。简单的说,你可以把程序中的变量、类别名称使用中文来表示<注>,当你的程序移植到其它语言平台时,还是可以正常的执行。Java也是目前所有计算机语言当中,唯一天生使用Unicode的语言。
什么是JAVA平台
一. Java的由来
当1995年SUN推出Java语言之后,全世界的目光都被这个神奇的语言所吸引。那么Java到底有何神奇之处呢?
Java语言其实最是诞生于1991年,起初被称为OAK语言,是SUN公司为一些消费性电子产品而设计的一个通用环境。他们最初的目的只是为了开发一种独立于平台的软件技术,而且在网络出现之前,OAK可以说是默默无闻,甚至差点夭折。但是,网络的出现改变了OAK的命运。
在Java出现以前。Internet上的信息内容都是一些乏味死板的HTML文档。这对于那些迷恋于WEB浏览的人们来说简直不可容忍。他们迫切希望能在WEN中看到一些交互式的内容,开发人员也极希望能够在WEB上创建一类无需考虑软硬件平台就可以执行的应用程序,当然这些程序还要有极大的安全保障。对于用户的这种要求,传统的编程语言显得无能为力,面SUN的工程师敏锐地察觉到了这一点,从1994年起,他们开始将OAK技术应用于WEB上,并且开发出了HotJava的第一个版本。当SUN公司1995年正式以Java这个名字推出的时候,几乎所有的WEB开发人员都想到:噢,这正是我想要的。于是Java成了一颗耀眼的明星,丑小鸭一下了变成了白天鹅。
二. Java的定义
Java是一种简单的,面象对象的,分布式的,解释的,键壮的安全的,结构的中立的,可移植的,性能很优异的多线程的,动态的语言。
Java的开发环境有不同的版本,如sun公司的Java Developers Kit,简称 JDK。后来微软公司推出了支持Java规范的Microsoft Visual J++ Java开发环境,简称 VJ++。
三. Java的特点
1.平台无关性
平台无关性是指Java能运行于不同的平台。Java引进虚拟机原理,并运行于虚拟机,实现不同平台的Java接口之间。使用Java编写的程序能在世界范围内共享。Java的数据类型与机器无关,Java虚拟机(Java Virtual Machine)是建立在硬件和操作系统之上,实现Java二进制代码的解释执行功能,提供于不同平台的接口的。
2.安全性
Java的编程类似C++,学习过C++的读者将很快掌握Java的精髓。Java舍弃了C++的指针对存储器地址的直接操作,程序运行时,内存由操作系统分配,这样可以避免病毒通过指针侵入系统。Java对程序提供了安全管理器,防止程序的非法访问。
3.面向对象
Java吸取了C++面向对象的概念,将数据封装于类中,利用类的优点,实现了程序的简洁性和便于维护性。类的封装性、继承性等有关对象的特性,使程序代码只需一次编译,然后通过上述特性反复利用。程序员只需把主要精力用在类和接口的设计和应用上。Java提供了众多的一般对象的类,通过继承即可使用父类的方法。在 Java中,类的继承关系是单一的非多重的,一个子类只有一个父类,子类的父类又有一个父类。Java提供的 Object类及其子类的继承关系如同一棵倒立的树形,根类为 Object类, Object类功能强大,经常会使用到它及其它派生的子类。
4.分布式
Java建立在扩展TCP/IP网络平台上。库函数提供了用HTTP和FTP协议传送和接受信息的方法。这使得程序员使用网络上的文件和使用本机文件一样容易。
5.键壮性
Java致力于检查程序在编译和运行时的错误。类型检查帮助检查出许多开发早期出现的错误。Java自已操纵内存减少了内存出错的可能性。Java还实现了真数组,避免了覆盖数据的可能。这些功能特征大大提高了开发Java应用程序的周期。Java提供: Null指针检测、数组边界检测、异常出口、 Byte code校验。
四. Java与C/C++语言
Java提供了一个功能强大语言的所有功能,但几乎没有一点含混特征。C++安全性不好,但C和C++被大家接受,所以Java设计成C++形式,让大家很容易学习。
Java去掉了C++语言的许多功能,让Java的语言功能很精炼,并增加了一些很有用的功能,如自动收集碎片。
Java去掉了以下几个C和C++功能:
指针运算
结构
typedefs
#define
需要释放内存
这将减少了平常出错的50%。而且,Java很小,整个解释器只需215K的RAM。
面象对象:Java实现了C++的基本面象对象技术并有一些增强,(为了语言简单,删除了一些功能)。Java处理数据方式和用对象接口处理对象数据方式一样。
五. Java与Internet
我们知道,早先的 www仅可以传送文本和图片,Java的出现实现了互动的页面,是一次伟大的革命。
Java并不是为 Internet,WWW而设计的,它也可以用来编写独立的应用程序。Java是一种面向对象语言。Java语言类似于 C++语言,所以已熟练掌握 C++语言的编程人员,再学习 Java语言就容易得多!Java程序需要编译。实际上有两种 Java程序:一种 Java应用程序是一个完整的程序,如 Web浏览器。一种 Java小应用程序是运行于 Web浏览器中的一个程序.
Java程序和它的浏览器HotJava,提供了可让你的浏览器运行程序的方法。你能从你的浏览器里直接播放声音。你还能播放页面里的动画。Java还能告诉你的浏览器怎样处理新的类型文件。当我们能在2400 baud线上传输视频图象时,HotJava将能显示这些视频。
当今Internet的一大发展趋势是电子商务,而Internet的安全问题是必须解决的问题,通常大的部门应设置防火墙,阻止非法侵入。
电子商务是当今的热门话题,然而传统的编程语言难以胜任电子商务系统,电子商务要求程序代码具有基本的要求:安全、可靠、同时要求能与运行于不同平台的机器的全世界客户开展业务。Java以其强安全性、平台无关性、硬件结构无关性、语言简洁同时面向对象,在网络编程语言中占据无可比拟的优势,成为实现电子商务系统的首选语言。
Java程序被放置在Internet服务器上,当用户访问服务器时,Java程序被下载到本地的用户机上,由浏览器解释运行。
请介绍一下java
更多信息请参考:
很多有用的信息
最近一年多来,在 Internet上出现的特别吸引人的事件就是Java语言和用
Java编写的浏览器 HotJava。
1991年,SUN MicroSystem公司的 Jame Gosling、 Bill Joe等人,为在电
视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak
的软件(即一种橡树的名字),但当时并没有引起人们的注意,直到 1994年下半
年,Internet的迅猛发展,环球信息网 WWW的快速增长,促进了 Java语言研制的
进展,使得它逐渐成为 Int ernet上受欢迎的开发与编程语言,一些著名的计算机
公司纷纷购买了 Java语言的使用权,如 Mi-croSoft、 IBM、 Netscape、 Novell、
Apple、 DEC、 SGI等,因此,Java语言被美国的著名杂志 PC Magazine评为 1995
年十大优秀科技产品,(计算机类就此一项入选),随之大量出现了用 Java编写的
软件产品,受到工业界的重视与好评,认为"Java是八十年代以来计算机界的一件
大事",微软总裁比尔·盖茨在悄悄地观察了一段时间后,不无感慨地说:"Java是
长时间以来最卓越的程序设计语言",并确定微软整个软件开发的战略从 PC单机时
代向着以网络为中心的计算时代转移,而购买 Java则是他的重大战略决策的实施部
署。
因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型
提出了新的挑战。
SUN MicroSystem公司的总裁 Scott McNealy认为 Java为 Internet和 WWW开
辟了一个崭新的时代。
环球信息网 WWW的创始人 Berners-Lee说:"计算机事业发展的下一个浪潮就
是 Java,并且将很快会发生的"。
看来,使用 Java已成大势所趋!
MicroSoft和 IBM两大公司都计划在 Internet上销售用 Java编写的软件。
Apple、 HP、 IBM、 MicroSoft、 Novell、 SGI、 SCO、 Tandem等公司均
计划将 Java并入各自开发的操作系统,而负责开发并推广 Java技术的 SunSoft公
司(这是 SUN下属的一个子公司),将通过颁发许可证的办法来允许各家公司把
Java虚拟机和 Jav a的 Applets类库嵌入他们开发的操作系统,这样各类开发人员
就能更容易地选择多种平台来使用 Java语言编程,不同的用户也就可以脱离 Web
浏览器来运行 Java应用程序,这无疑是很受广大用户欢迎的,也为 Java语言的应
用开拓了极为广阔的前景。(当然,各类 JavaOS之间的兼容性必须得到重视,好在
JavaSoft已保证将监督这种兼容性)。
另外,由 JavaSoft推出的完全用 Java编写的 Internet上新型浏览器HotJava,
比去年 alpha版更为实用,不仅能编制动态的应用软件,而且能编制完整的成套桌
面应用软件,将来还会提供更多的能帮助编制动态应用软件的模块,显然,这也是
为 Java的应用提供了有力的例证。
今年 6月 7日,由 SUN公司和台湾经济事务部信息发展局、台湾信息技术研
究所等单位牵头,成立了一个"Java联盟",参加的有 22个在台湾相当著名的计算
机公司,并在台北建立一个"Java开发中心",在新竹建立一个"Java语言实验室",
以掀起台湾开发与应用 Java语言的热潮。
香港则在今年 4月就举行了全岛的 Java杯比赛,在计算机界掀起了学习
Java的热潮(尤其是在大学生们中,出现了一批 Java迷)。
有人预言:Java将是网络上的"世界语",今后所有的用其他语言编写的软
件统统都要用 Java语言来改写。
二、 Java语言对软件开发技术的影响
工业界不少人预言:"Java语言的出现,将会引起一场软件革命",这是因为
传统的软件往往都是与具体的实现环境有关,换了一个环境就需要作一番改动,耗
时费力,而 Java语言能在执行码(二进制码)上兼容,这样以前所开发的软件就
能运行在不同的机器上,只要所用的机器能提供 Java语言解释器即可。
Java语言将对未来软件的开发产生影响,可从如下几个方面考虑:
1软件的需求分析:可将用户的需求进行动态的、可视化描述,以提供设计
者更加直观的要求。而用户的需求是各色各样的,不受地区、行业、部门、爱好的
影响,都可以用 Java语言描述清楚。
2软件的开发方法:由于 Java语言的面向目标的特性,所以完全可以用 O-O
的技术与方法来开发,这是符合最新的软件开发规范要求的。
3 Java语言的动画效果远比 GUI技术更加逼真,尤其是利用 WW W提供的巨大
动画资源空间,可以共享全世界的动态画面的资源。
4软件最终产品:用 Java语言开发的软件可以具有可视化、可听化、可操
作化的效交互、动画与动作",要它停就停,要它继续就继续,而这是在电影与电
视播放过程中难以做到的。
5其它:使用 Java语言对开发效益、开发价值都有比较明显的影响。
三、工业界对 Java语言的评价
1996年 5月 29~ 31日,在美国旧金山召开了一个全世界 Java语言开发者
大会,(JavaOne Developer Confer-ence),出席会议的多达 6500多人,来自工业
界的超过一半,有人评价说:"这是近年来计算机界最光辉的一次盛会",一些工
业界的老总们相当看好 Java语言,认为它的使用将会引起一场软件革命。从软件
的设计风格、设计方法、设计目标到设计过程,都会产生彻底的变革,"甚至会改
变此星球的生活方式"。
在这次会上,Java的创始人之一 James Gosling说:"Java不仅仅只是
applets,它能做任何事情",Dta咨询公司的高级软件工程师 Rich Kadel说:"Java
不仅仅是一种程序设计语言,更是现代化软件再实现的基础;Java还是未来新型
OS的核心;将会出现 Java芯片;将构成各种应用软件的开发平台与实现环境,是
人们必不可少的开发工具,……"。
由于各界都看好它,因此,各大公司都纷纷表示支持 Java,Inte l、 Xerox
公司声言将把 Java嵌入到他们的产品中去。就连华尔街金融界也在投入资金人力
用 Java开发电子贸易、金融软件。
所以有人说:"现在第三方的开发商都团结在 Java大旗周围了!",纷纷推出
用 Java开发的各种软件产品,以期尽快地占领市场。
四、 Java语言的应用前景
Java语言有着广泛的应用前景,大体上可以从以下几个方面来考虑其应用:
1所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;
2计算过程的可视化、可操作化的软件的开发;
3动态画面的设计,包括图形图像的调用;
4交互操作的设计(选择交互、定向交互、控制流程等);
5 Internet的系统管理功能模块的设计,包括 Web页面的动态设计、管理
和交互操作设计等;
6 Intranet(企业内部网)上的软件开发(直接面向企业内部用户的软件);
7与各类数据库连接查询的 SQL语句实现;
8其它应用类型的程序。
§ 1.2 Java的特点
Java是一个广泛使用的网络编程语言,它是一种新的计算概念。
首先,作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、
具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其
次,它最大限度地利用了网络,Java的小应用程序(applet)可在网络上传输而
不受 CPU和环境的限制。另外,Java还提供了丰富的类库,使程序设计者可以很
方便地建立自己的系统。
下面我们分别从这三个方面来讨论 Java的特点,然后通过把 Java与 C,
C++相比进一步指出它所具有的优点。
一、 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虚拟
机中的表示,Java解释器得到字节码后,对它进行转换,使之能够在不同的平
台运行。
7.可移植性
与平台无关的特性使 Java程序可以方便地被移植到网络上的不同机器。
同时,Java的类库中也实现了与不同平台的接口,使这些类库可以移植。另外,
Java编译器是由 Java语言实现的,Java运行时系统由标准 C实现,这使得Java
系统本身也具有可移植性。
8.解释执行
Java解释器直接对 Java字节码进行解释执行。字节码本身携带了许多
编译时信息,使得连接过程更加简单。
9.高性能
和其它解释执行的语言如 BASIC、 TCL不同,Java字节码的设计使之能
很容易地直接转换成对应于特定CPU的机器码,从而得到较高的性能。
10.多线程
多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据
的正确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定
的行为,而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实
时交互行为。
11.动态性
Java的设计使它适合于一个不断发展的环境。在类库中可以自由地加入
新的方法和实例变量而不会影响用户程序的执行。并且 Java通过接口来支持
多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
二、 Java Applet
Java语言的特性使它可以最大限度地利用网络。 Ap-plet是 Jav a的小应
用程序,它是动态、安全、跨平台的网络应用程序。 Java Applet嵌入 HTML语
言,通过主页发布到 Internet。网络用户访问服务器的 Applet时,这些Applet
从网络上进行传输,然后在支持 Java的浏览器中运行。由于 Java语言的安全机
制,用户一旦载入 Applet,就可以放心地来生成多媒体的用户界面或完成复杂的
计算而不必担心病毒的入侵。虽然 Applet可以和图像、声音、动画等一样从网
络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态
地进行改变,而不仅仅是动画的显示和声音的播放。
三、丰富的类库
Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。
1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函
数处理等,可以用它简单地实现Java程序的运行平台。
2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。
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程序中,不能在所有类之外定义全局变量,只能通过在一个类中定
义公用、静态的变量来实现一个全局变量。例如:
Class GlobalVar{
public static global_var;
}
在类 GlobalVar中定义变量 global_var为 public stat-ic,使得其它类
可以访问和修改该变量。
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对此自动地进行管理并且进行垃圾收集,有效防止了由
于程序员的误操作而导致的错误,并且更好地利用了系统资源。
5.数据类型的支持
在 C、 C++中,对于不同的平台,编译器对于简单数据类型如 in t,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来声明一个常量,以实现宏定义中广泛使
用的常量定义。
如果你还想了解更多这方面的信息,记得收藏关注本站。