第1章Java语言概述
1.1 Java语言发展和特点
1.1.1 Java语言的发展
1990年,美国Sun公司的James Gosling、Bill Joe等人,为在电视、控制烤箱等家用消费类电子产品上进行交互式操作而开发了一种与平台无关、可靠性强、小而灵活的编程语言,但当时并没有引起人们的注意。直到1994年下半年,Ⅰnternet的迅猛发展,环球信息网WWW的快速增长,人们发现Java这种中性平台及可靠性强的语言恰恰就是全球信息网在等待的语言。Java的开发人员基于网络对Java进行了一系列的改进,融合了C和C++等语言的优点,形成了现在这套与众不同的面向对象的通用程序设计语言。
Java的原名叫Oak(橡树),但在申请注册商标时,发现Oak已经有人用了。在想了一系列名字后,最终,使用了提议者在喝一杯Java咖啡时无意提到的Java。
Java(JDK 1.0)正式发表于1995年5月。Java的“Write Once,Run Anywhere(一次编写,到处运行)”口号使得Java一出现就引起广泛的注意,用Java开发的软件可以不用修改或重新编译而直接应用于多种不同平台的计算机上。Java语言的众多优点使得它逐渐成为Ⅰnternet上受欢迎的开发与编程语言。Java的诞生对传统的计算模型提出了新的挑战。
Java语言有着广泛的应用前景,可以从以下几个方面来考虑其应用。
(1)所有面向对象的应用开发,包括面向对象的事件描述、处理、综合等;
(2)计算过程的可视化、可操作化的软件的开发;
(3)动态画面的设计,包括图形图像的调用;
(4)交互操作的设计(选择交互、定向交互、控制流程等);
(5)Ⅰnternet的系统管理功能模块的设计,包括Web页面的动态设计、管理和交互操作设计等;
(6)Ⅰntranet(企业内部网)上的软件开发(直接面向企业内部用户的软件);
(7)与各类数据库进行连接并进行各种操作的实现;
(8)其他应用类型的开发设计。
目前,针对不同领域的软件开发,Java有三个平台可供选择:
Java SE:Java标准版,可用于开发桌面应用和一般的网络应用。
Java EE:Java企业版,可用于开发一般和复杂的分布式的综合网络应用。
Java ME:Java微型版。可用于开发可用资源较少的个人数字助理、手机等终端设备上的应用。
1.1.2 Java语言的特点
Java是一个迅速发展的网络编程语言,它是一种新的计算概念。
首先,作为一种程序设计语言,它简单、面向对象、分布式、解释执行、不依赖于机器的结构、具有可移植性、鲁棒性、安全性、并且是多线程的、动态的,具有很高的性能。
其次,Java最大限度地利用了网络。一种嵌入HTML语言中,通过Web页发布到Ⅰnternet,称为Java小程序(Applet)的Java程序,可在网络上运行而不受CPU和环境的限制。一旦载入小程序,就可以放心地来生成多媒体的用户界面或完成复杂的计算而不必担心病毒的入侵。小程序不仅可以和图像、声音、动画等一样从网络上下载,它还可以进行人机交互,动态地改变图像、动画的显示和声音的播放。
另外,Java还提供了丰富的类库,以满足网络化、多线程、面向对象系统的需要,使程序设计者可以很方便地建立自己的系统。
1.1.3 Java程序的工作机制
学习Java语言,有必要了解Java的工作机制,这将更有助于理解Java语言的特点。
对于运行在 Ⅰnternet上的网络应用程序,需要有良好的可移植性。因为 Ⅰnternet是由各种各样不同类型的终端、服务器和PC等硬件设备组成的,而且在这些设备上运行的软件系统也是多种多样的,所以 Ⅰnternet上的网络应用程序应该具有在各种不同的软硬件平台上均可正常工作的能力。Java的工作机制使得它具有了这样的能力。
Java的工作机制是这样的:编程人员首先编写好源代码,然后经编译生成一种二进制的中间码,称为字节码(byte code),最后再通过运行与操作系统平台环境相应的一种称为Java解释器的运行机构来执行编译生成的字节码。虽然不同的平台环境需要有各自相应的解释器,但是任何一个平台上的解释器,对于一段Java程序的字节码来说却是相同的,它们对Java字节码呈现出完全相同的面貌。也就是说,Java的运行机制是利用解释器来隐藏网络上平台环境的差异性的。由此可见,Java实现了二进制代码级的可移植性,在网络上实现了跨平台的特性。
Java的解释器和运行时系统又称为“Java虚拟机(JVM,Java Virtual Machine)”,是驻留于计算机内存的虚拟计算机或逻辑计算机,实际上是一段负责解释执行Java字节码的程序。JVM能够从字节码流中读取指令并解释指令的含义,每条指令都含有一个特殊的操作码,JVM能够识别并执行它。从这个意义上说,Java可以被称为是一种“解释型”的高级语言。
若Java解释器是一个独立的应用程序,并可以在操作系统下直接启动,那么它解释执行的程序被称为“Java应用程序(Application)”;若Java解释器包含在一个WWW的客户端浏览器内部,使得这个浏览器能够解释字节码程序,则这种浏览器能够自动执行的Java程序被称为“Java小程序(Applet)”。这两种程序从程序结构到运行机理都不相同,Java应用程序多在本地或服务器上运行,而Java小程序则只能嵌入到网页中运行。
无论是Java应用程序还是Java小程序,其程序源代码文件都以.java为文件扩展名,源代码文件编译后产生的二进制字节码文件以.class为文件扩展名。