- 相关推荐
Java语言基本概述
引导语:Java语言具有功能强大和简单易用两个特征。为了帮助大家了解Java,以下是百分网小编分享给大家的Java语言概述,欢迎阅读学习!
背景
1991年,SUNMicroSystem公司的JameGosling、BillJoe等人,为在电视、控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为Oak的软件(即一种橡树的名字),但当时并没有引起人们的注意,直到1994年下半年,Internet的迅猛发展,环球信息网WWW的快速增长,促进了Java语言研制的进展,使得它逐渐成为Internet上受欢迎的开发与编程语言,一些著名的计算机公司纷纷购买了Java语言的使用权,
如Mi-croSoft、IBM、Netscape、Novell、Apple、DEC、SGI等,因此,Java语言被美国的著名杂志PCMagazine评为1995年十大优秀科技产品,(计算机类就此一项入选),随之大量出现了用Java编写的软件产品,受到工业界的重视与好评,认为"Java是八十年代以来计算机界的一件大事",
微软总裁比尔·盖茨在悄悄地观察了一段时间后,不无感慨地说:"Java是长时间以来最卓越的程序设计语言",并确定微软整个软件开发的战略从PC单机时代向着以网络为中心的计算时代转移,而购买Java则是他的重大战略决策的实施部署。因此,Java的诞生必将对整个计算机产业发生深远的影响,对传统的计算模型提出了新的挑战。
SUNMicroSystem公司的总裁ScottMcNealy认为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虚拟机和Java的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的小应用程序(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通过接口来支持多重继承,使之比严格的类继承具有更灵活的方式和扩展性。
二、JavaApplet
Java语言的特性使它可以最大限度地利用网络。Applet是Java的小应用程序,它是动态、安全、跨平台的网络应用程序。JavaApplet嵌入HTML语言,通过主页发布到Internet。网络用户访问服务器的Applet时,这些Applet从网络上进行传输,然后在支持Java的浏览器中运行。由于Java语言的安全机制,用户一旦载入Applet,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。虽然Applet可以和图像、声音、动画等一样从网络上下载,但它并不同于这些多媒体的文件格式,它可以接收用户的输入,动态地进行改变,而不仅仅是动画的显示和声音的播放。
三、丰富的类库
Java提供了大量的类以满足网络化、多线程、面向对象系统的需要。
1.语言包提供的支持包括字符串处理、多线程处理、例外处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。
2.实用程序包提供的支持包括哈希表、堆栈、可变数组、时间和日期等。
3.输入输出包用统一的"流"模型来实现所有格式的I/O,包括文件系统、网络、输入/出设备等。
4.低级网络包用于实现Socket编程。
5.抽象图形用户接口包实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得Java可以移植到不同平台的机器。
6.网络包支持Internet的TCP/IP协议,提供了与Internet的接口。它支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。
四、Java和C、C++
对于变量声明、参数传递、操作符、流控制等,Java使用了和C、C++相同的传统,使得熟悉C、C++的程序员能很方便地进行编程。同时,Java为了实现其简单、鲁棒、安全等特性,也摒弃了C和C++中许多不合理的内容。
1.全局变量
Java程序中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量。例如:
ClassGlobalVar{
publicstaticglobal_var;
}
在类GlobalVar中定义变量global_var为publicstat-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++中,对于不同的平台,编译器对于简单数据类型如int,float等分别分配不同长度的字节数,例如:int在IBMPC中为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来声明一个常量,以实现宏定义中广泛使用的常量定义。
【Java语言基本概述】相关文章:
Java语言的基本特点03-29
Java语言基本特点11-25
Java基础知识概述05-16
java selenium基本教程04-01
Java类的基本构成11-18
Java语言的优点12-05
Java语言的历史12-03
Java代码的基本知识03-29
C语言预处理概述03-30