Java语言程序设计(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-17 00:00:22

点击下载

作者:王新萍

出版社:电子工业出版社

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

Java语言程序设计

Java语言程序设计试读:

全国计算机等级考试教程

Java语言程序设计(二级)(新大纲版)

CIP号:第135460号

ISBN:7-121-00726-6

中图分类:TP312

关键词:JAVA语言-程序设计-水平考试-自学参考资料

北京,2005/01,电子工业出版社

版次:1

印次:1

价格:29.00

印数:8000册

印张:16.25

字数:370

开本:787×1092 1/16

语种:中文摘要

本书是根据2004年教育部考试中心公布的《全国计算机等级考试大纲二级(Java语言程序设计)》编写而成的。本书包括Java语言概述,Java语言基础知识,Java语言中面向对象的特性,异常处理与I/O流,编写用户界面程序,Java的线程和Java Applet。本书每章都指出了重点和难点,并配有例题解析和练习题及答案,书后有模拟试题以供练习。

本书特别适合于作为全国计算机等级考试Java语言程序设计(二级)的教材和参考书,也适合于作为相关计算机专业课程的教材或教学辅导书。李楹 编著梁妍 编著夏云龙 编著刘洋 编著毕宁 责任编辑出版说明

关于丛书《全国计算机等级考试教程》自 2001 年首次推出以来,历经多次改版和修订,受到了广大读者的普遍欢迎,特别是得到了考生们的一致推崇。本次修订是根据2004年教育部考试中心颁布的《全国计算机等级考试大纲》编写而成的。

作为出版者,我们深深感到,只有真正好的作品才能“一石激起千层浪”。综观现在的等考书籍市场,鱼龙混杂,相当一部分的小出版商只顾卖书的眼前利益,利欲熏心,毫无社会责任感,出版了一大批内容质量低下,错误百出,印装粗糙,胡乱定价的等考书籍。购买这样的书籍去准备考试,结果可想而知,很多考生深受其害,以至屡战屡败。

回想我们在本套丛书历次修订出版时定下的原则——“标准、实用、严谨”,我们为之付出的是无数次的挑灯夜战,与作者并肩上阵,仔细推敲,反复修改,目标是推出一套切实能为广大考生服务的等考用书。小而言之,是为考生考试过关;大而言之,考生通过优秀的书籍增长了知识,提高了自身的资质,进而可以获得更理想的工作与职位,实现更大的人生价值,这样的间接影响恐怕是无法度量的。因此,作为出版者,我们把对社会价值的理解落实在我们与考生之间坚不可摧的关系上,因为我们与考生有着同样深刻的共识,那就是:知识改变命运。

当然,我们仍然保持着奉献的激情,并坚定着一个始终不渝的追求——精益求精。

为了更好地为考生服务,经过深入调研,我们在2004年新大纲的基础上推出了新版系列。在这个版本中:

· 因应新大纲的内容,做了增、删、改等调整;

· 修订了部分内容,在新大纲的基础上扩充了部分相关知识,以满足目前相关专业课教学的需要;

· 综合读者反馈和自查,修改了以前历次版本中发现的错漏之处。

因此,本套丛书突出强调了以下几个特点:

1.解决考什么——紧紧依据考试大纲,精讲考试重点、难点

2.解决怎么考——透彻深入解析例题,整体把握考试形式

3.立足笔试特点——综合历年经典试题,强化笔试自我训练

4.立足上机操作——提供无忧公司出品的“超级模拟软件”,真实感受上机环境我们真诚希望,考生凭借本套丛书,能轻松通过考试,实现自己的目标。

本书的主要内容和读者对象

等级考试二级中的公共基础知识部分放在本套丛书中的《公共基础知识(二级)》一书中集中介绍,本书中只包含公共基础知识部分,不包含程序设计部分内容,其模拟试题包含在其他考试科目模拟试卷中。

本书包括Java语言概述,Java语言基础知识,Java语言中面向对象的特性,异常处理与I/O流,编写用户界面程序,Java的线程和Java Applet。本书每章都指出了重点和难点,并配有例题解析和练习题。附录A为练习题答案。

本书适合于作为全国计算机等级考试Java语言程序设计(二级)的教材和参考书,也适合于作为相关计算机专业课程的教材或教学辅导书。

关于作者

本丛书编委会由长期在计算机教育和等级考试培训领域一线的专家、教授组成,他们有非常丰富的教学经验,能准确把握考试要点和难点,了解考生在学习中会遇到的诸多问题,因此全书内容的安排有非常强的针对性,读者掌握了全书的内容就一定能通过考试。

本书第1章、第2章、第5章由李楹编写,第3章由梁妍编写,第4章由夏云龙编写,第 6 章由刘洋编写。此外,梁景莲等同志也参与了本书的资料收集工作,马希荣同志对全书进行了审阅,并提出了宝贵的建议。全书由李楹统稿。

反馈

如果在阅读和学习的过程中,读者发现有叙述不清或有疑问的地方,可与我们联系。

由于水平有限和时间仓促,书中难免存在疏漏之处,欢迎广大读者批评指正。对书中内容的勘误,读者可上www.broadview.com.cn网站进行查阅。同时,为进一步鼓励读者积极参与对本书的勘误,我们将对首先发现错误的读者或提供重大建设性意见和建议的读者,赠送纪念品。

问题及意见反馈请发往:(100036)北京万寿路173信箱电子工业出版社 计算机图书事业部 收或通过电子邮件:

editor@broadview.com.cn jsj@phei.com.cn

电子工业出版社计算机图书事业部(北京博文视点资讯有限公司)第1章 Java语言概述

内容及考核知识点

Java语言的发展与应用

Java语言的特点与实现机制

开发环境设置

Java体系结构1.1 Java语言的发展和应用1.1.1 Java的产生与发展

1991年,Sun MicroSystem公司的Jame Gosling、Bill Joe等人为在电视、烤箱等家用消费类电子产品上进行交互式操作而着手设计和开发出一种语言,称之为Oak(橡树)。该语言采用了许多C语言的语法,提高了安全性,并且是面向对象的语言,但是Oak语言在商业上并未获得成功。

1994年下半年,Internet迅猛发展,Sun公司发现Oak语言所具有的跨平台、面向对象、安全性高等特点非常符合互联网的需要,于是改进了该语言的设计,并命名该语言为Java(印尼一个盛产咖啡的小岛)语言。1995年Sun公司正式推出Java,从而造就了一代成功的编程语言。

Java应用于WWW后,因其在WWW上支持各种动态和交互效果而迅速闻名,此后,各种浏览器竞相支持Java,大量用Java编写的软件产品纷纷涌现。1995年美国的著名杂志PC Magazine评选Java语言为十大优秀科技产品。微软公司总裁比尔·盖茨先生在经过研究后认为“Java语言是长时间以来最卓越的程序设计语言”。当时有人预言:Java将是网络上的“世界语”,今后所有用其他语言编写的软件统统都要用Java语言来改写。总之,“Java语言的出现是计算机界的一件大事”。

目前,Java语言已经成为最流行的网络编程语言,Java这杯咖啡已经香飘世界。1.1.2 Java的应用

Java程序有可以单独运行的Java应用程序,也有应用于网页的Java小应用程序(Applet)。

Java实际是一种常规用途的程序设计语言,可解决任何类型的问题。在这点上,Java的优势不仅反映在它的可移植性上,也反映在编程本身,即Java提供的许多特性使我们能在较短的时间里创建出更健壮的程序。但其最明显的问题是执行速度较慢(Java对此一直在进行多方面的调整)。此外,Java本身也存在一些限制,使得它不十分适合解决某些特殊的编程问题。

Java Applet是动态、安全、跨平台的网络应用程序,它可以嵌入网页,并在浏览器中运行。网络用户访问网页时,其中的Applet也随之从网络上进行传输,然后在支持Java的浏览器中运行。它给网页增添动态效果和交互操作。Java的这个特性使它可以最大限度地利用网络。

J2EE(Java 2 Enterprise Edition)是Sun对Java改进后的一个企业应用程序的开发平台,包括了对EJB、Servlet、Java Server Page、JNDI、XML等的支持。在这个平台上可以开发瘦客户端的多层体系结构的企业应用程序。其中,Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java enabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用“请求—响应”模式提供Web服务。JSP是Java Server Page的缩写,是Sun公司出品的Web开发语言,它类似于Microsfot公司的ASP,但由于它的跨平台性,愈来愈受到广泛的应用。Servlet与JSP之间的交互为开发Web服务提供了优秀的解决方案。

随着嵌入式技术的普及推广,Sun公司对Java改进后发布了J2ME(Java 2 Micro Edition),它定位于嵌入式系统的应用,专门针对对内存具有苛刻要求的嵌入式系统而设计。它是Java API的一个子集,包含了能够在大多数消费者的设备中运行的Java虚拟机、专用的API函数库和用于开发和设置的工具。J2ME在无线通信领域得到了充分的重视和广泛的应用。

可见,Java语言有着广泛的应用前景。1.2 Java语言的特点和实现机制1.2.1 Java语言的特点

Java编程语言是一种高级语言,它具有简单、面向对象、分布式、解释型、鲁棒性、安全、结构中立、可移植、高效率、多线程、动态等特点,下面对其中一些特点作以下解释:

1.Java是简单的

从某种意义上说,Java语言是C及C++语言的一个变种,它删除了C++中容易引发程序错误的地方,如指针、运算符重载;用接口(interface)的简单语言概念替代了C++的多重继承;通过自动垃圾收集功能大大简化了程序设计者的内存管理工作,使程序设计变得简单。与C++相比,Java具有更强的功能和更少的副作用,因此有人称它为“C++--”,C++程序员可以很快掌握Java编程技术。

2.面向对象

Java语言面向对象的特性非常彻底,它同所有面向对象编程语言一样都支持三个概念:封装性、多态性和继承性。Java语言的设计集中于对象及其接口,它提供了简单的类机制及动态的接口模型。所有Java应用程序和Applet(Java小应用程序)都是对象,对象中封装了变量和方法,实现了模块化和信息隐藏;类是一类对象的原型,它通过继承机制使子类可以使用父类的方法,从而实现代码的重用,用户可以通过这些机制,建立自己的类库。

3.与平台无关,可以移植

与其他编程语言不同,Java编译器编译生成的是与平台无关的字节码文件格式,这使得Java程序能在网络的任何地方运行。不同种类的计算机,只要在其处理器和操作系统上有Java运行时环境,字节码文件就可以在该计算机上运行。因此,使用Java,开发者只需编写应用程序的一个版本就能在所有的平台上运行。与平台无关性使得Java系统具有很强的可移植性。4.解释型语言

为易于实现跨平台性,Java设计成为解释执行而不是编译执行的运行环境。解释执行在执行过程中,根据所在的不同的硬件平台把字节码解释为目标机的机器语言,实现跨平台运行。

5.鲁棒性

Java在编译和运行程序时都要对可能出现的问题进行检查,以防止错误的产生。Java编译器可以查出许多其他语言运行时才能发现的错误。Java不支持指针操作,大大减少了错误发生的可能性。Java具有异常处理的功能,当程序异常时,它能捕获并响应意外情况,以保证程序能稳妥地结束,计算机系统不会崩溃。

6.Java是安全的

作为网络程序设计语言,Java执行多层安全机制,以提供足够的安全保障。下载到用户计算机中的字节代码在其被执行前要经过一个核实工具,以确保不含病毒。字节代码被核实后才由Java解释器来执行,解释器阻止程序对内存的直接访问和对本地数据的修改。Java拥有多个阶层的互锁(interlocking)保护措施,能有效防止病毒的入侵和破坏行为的发生。

7.Java支持多线程

多线程是指程序可以同时执行几个任务,不同的线程处理不同的任务,互不干涉。Java支持多线程机制,使应用程序可以同时进行不同的操作,处理不同的事件,这样可以容易地实现网络上的实时交互操作。它还提供了易于使用的同步机制,使程序设计简便。

8.动态、可扩展

Java允许在类库中加入方法和变量且不影响该类用户的使用。Java通过接口支持多重继承,比严格的类继承具有更灵活的方式和更大的扩展性。Java在执行过程中,可以动态地加载各种类库,这使得即使更新类库也不必重新编译使用这一类库的应用程序。Java的可扩展性使它能够适应不断发展的环境。1.2.2 Java的实现机制

1.Java虚拟机

平台是指程序运行的硬件或软件环境。Java平台是运行于操作系统和硬件之上的纯软件平台。

Java平台由两部分组成:

· Java虚拟机(JVM——Java Virtual Machine)

· Java应用编程接口(Java API——Java Application Programming Interface)

Java虚拟机是Java平台的基础,可以移植到各种基于硬件的平台上。Java应用编程接口是软件组件的集合,它们提供了很多有用的功能,如图形用户接口(GUI)。Java应用编程接口被分组为相关组件的库。图1-1描述了一个运行在Java平台上的Java程序,如应用程序(application)或小应用程序(applet)。如图1-1所示,Java应用编程接口和Java虚拟机把Java程序从硬件依赖中分离出来。图1-1 Java平台

Java的主要实现机制依靠Java虚拟机(JVM),它是一种抽象机器,具有一套虚机器指令,并有自己的栈、寄存器组等。Java虚拟机通常由软件实现,所以可以认为Java虚拟机是软件模拟的计算机,它附着在具体操作系统之上,是Java平台无关性的基础。

编制Java程序时,编程人员先编写好Java源文件(.java文件),然后通过Java编译器将Java源程序编译为一种中间代码——字节码。它是Java虚拟机可以识别的“机器码”,称之为字节码文件(.class文件)。在Java虚拟机上,有一个Java解释器用来解释Java编译器编译后的字节码文件。

只要配备了Java虚拟机,任何处理器(包括计算机和其他电子设备)都可以运行字节码文件,而且不管该字节码是在何种平台上生成的,如图1-2所示。但是,Java虚拟机的建立需要针对不同的软硬件平台做专门的实现,既要考虑处理器的型号,也要考虑操作系统的种类。图1-2 Java程序与平台无关

2.垃圾回收机制

Java程序运行时需要创建类的对象,这种对象存储在堆内存中,在执行过程中,部分对象使用过后就处于废弃状态,如果不及时进行无用内存的回收,就会导致内存泄漏。为充分利用资源,Java运行环境中存在着一个系统级的线程,专门跟踪内存的使用情况,定期检测出不再使用的内存,并进行自动回收,减轻了程序员的工作量。

3.代码安全性检测机制

Java在多个层次上进行安全检测,编译时,有语法检查,执行时,字节码文件在具体执行时需要经过三个步骤:首先由类装载器(class loader)负责把字节码文件加载到Java虚拟机中,在此过程需要检验该类文件是否符合类文件规范;其次字节码校验器(bytecode verifier)检查该类文件的代码中是否存在着某些非法操作;如果字节码校验器检验通过,则由Java解释器负责把该类文件解释成为机器码进行执行。Java程序的编译执行过程如图1-3所示。Java虚拟机采用的是“沙箱”运行模式,即把Java程序的代码和数据都限制在一定内存空间里执行,不允许程序访问该内存空间外的内存,如果是applet程序,还不允许访问客户端机器的文件系统。图1-3 Java程序的编译执行过程1.3 开发环境设置

Java不仅仅是一种编程语言,也是一种应用和开发环境,它提供了一整套工具和类库。同时,Java还是一个程序发布平台,具有两种主要的“发布环境”:一种是Java运行时环境(JRE——Java Runtime Environment),它包含了完整的类文件包;另一种是浏览器,许多主要的浏览器都提供了Java解释器和运行时环境。

随着Java技术的不断发展,Sun公司根据市场进一步将Java细分为:针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本,如图1-4所示。

· Java 2 Platform,Standard Edition(J2SE)

· Java 2 Platform,Enterprise Edition(J2EE)

· Java 2 Platform,Micro Edition(J2ME)图1-4 J2EE、J2SE、J2ME

我们在学习Java的过程中,主要是采用J2SE来进行开发。1.3.1 J2SE的下载和安装

只要一台普通的PC机,安装好一种操作系统,再安装好JDK,就可以开发Java程序了。J2SE可以在很多光盘上找到,也可以从http://java.sun.com/j2se网站直接下载。

重点

下载时请注意选择正确的版本和操作系统平台

下载J2SE的同时,建议同时下载它的帮助文档,这将是有益的学习资料以J2SE1.4.2为例,下载后的安装文件和帮助文档分别为:

· j2sdk-1_4_2_05-windows-i586-p.exe(安装程序,Windows平台,简体中文版)

· j2sdk-1_4_2-doc.zip(文档)

依版本和平台不同,文件名会有所差异。

安装时可以指定安装目录,该版本的默认安装路径为c:\j2sdk1.4.2_05,我们主要使用的是其bin子目录下的两个可执行文件:javac.exe和java.exe,前者用于编译Java程序,后者用于解释执行Java程序。

若安装Java帮助文档,可将压缩文件释放到安装目录下,解压为docs子目录,它以HTML文件形式组织,打开index.html即可查看,如图1-5所示。图1-5 Java帮助文档1.3.2 设置J2SE

为了能在任何位置使用J2SE的编译和运行等工具,需要设置执行路径和类路径(仍以J2SE1.4.2为例):

在Windows 95/98/Me中,可在Windows的自动批处理文件autoexec.bat中添加

SET PATH=c:\j2sdk1.4.2_05\bin;%paht%(注意:“=”两边没有空格)

SET CLASSPATH=.;c:\j2sdk1.4.2_05\lib;

然后重新启动计算机。

在Windows NT中,选择“控制面板/系统/环境”,单击path选项,在其下的窗口最前端插入“c:\j2sdk1.4.2_05;”(注意:别忘了分号!),然后单击“设置”按钮。

Windows 2000/XP中,选择“控制面板/系统/高级/环境变量”,如图1-6所示。在系统变量窗口中编辑path变量,在前面插入“c:\j2sdk1.4.2_05;”(注意:别忘了分号!),单击“确定”按钮进行保存,如图1-7所示。用同样的方法设置classpath变量。图1-6 Windows 2000/XP环境变量的设置图1-7 Windows 2000/XP下编辑系统变量

难点

设置完成后,可以用如下方法检查设置是否正确:

在DOS命令窗口中键入“java-version”,然后回车,如果显示类似如下结果

则设置正确(注意:显示结果会因版本不同有所差异),如图1-8所示;若显示诸如“Bad command or file name”等信息,说明设置仍有问题。图1-8 测试正确的显示信息1.3.3 开发环境

有以下三种开发环境可供选择:

· 直接使用J2SE和文本编辑器,编译和运行均为命令行方式。此时,文本编辑可以采用“记事本”、UltraEdit等,编译使用javac.exe,运行使用java.exe。

· 使用J2SE和与Java集成的文本编辑环境,如TextPad、FreeJava等,TextPad界面如图1-9所示。它们依赖于J2SE,此时编译和运行均在文本编辑环境中进行。图1-9 TextPad界面

· 使用集成开发软件包。如Borland公司的JBuilder、IBM公司的Visual Age for Java、WebGain公司的Visual Cafe等,它们提供了一个集成开发环境,编辑、编译、调式等都在其中。1.4 Java体系结构1.4.1 J2SE目录结构

安装J2SE后,安装路径下有如下主要目录:

\bin 包含Java开发包中开发工具。

\demo 包含带有源代码的例子,教你如何在Java平台中编程。

\include 包含用于支持本地代码编程的C语言头文件。

\jre Java开发工具所使用的Java运行时环境(Java runtime environment)的根目录。

\lib 包含开发工具使用的文件。其中包括tools.jar和dt.jar。

J2SE的主要工具安装在\bin子目录下,其中包含如下常用的实用程序:

· javac:Java语言的编译器,将Java源代码转换成字节码。

· java:Java解释器,用于直接从类文件执行Java应用程序字节代码。

· appletviewer:一种执行HTML文件上的Java Applet的Java浏览器。

· jar:管理jar文件。该工具可以将Java程序打包成为一个文件。

· javadoc:用于生成API文档。根据Java源码及说明语句生成HTML文档。

· jdb:Java调试器,可以逐行执行程序,设置断点和检查变量。

· javah:C头文件和存根的生成器。产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。用于编写本地文件。

· javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。1.4.2 Java的API结构

为方便程序员编程,Java自带了一些类、接口等,并以包的形式进行组织,形成一定层次结构,称为Java应用编程接口(Java API——Java Application Programming Interface)。Java API结构可以通过帮助文档进行查阅,它的使用说明通过HTML格式提供。可打开帮助文档目录下的docs\api\index.html查看,如图1-10所示。图1-10 Java API帮助文档

该窗口分为三部分,左上方显示Java的各个包,单击某个包后,窗口左下方显示该包中所有的类名。单击左下方的类名,窗口右方将显示其继承关系以及构造函数、成员变量、方法等的用法。1.4.3 Java程序结构

一个完整的Java源程序应该包括下列5个部分。(1)package语句

将源文件存入指定的包中,该部分至多只有一句,必须放在源程序的第一句,如果没有该语句,则源文件存入当前目录下。(2)import语句

导入需要的包或类,该部分可以有若干import语句或者没有,必须放在所有的类定义之前。(3)公共类定义

公共类定义部分至多只有一个公共类的定义,Java语言规定该Java源程序的文件名必须与该公共类名完全一致。(4)类定义

类定义部分可以有0个或者多个类定义。(5)接口定义

接口定义部分可以有0个或者多个接口定义。1.4.4 Java程序的编译及运行

下面以一个非常简单的应用程序为例,介绍Java程序结构和编译、运行过程,该程序在屏幕上显示“Hello World!”。

1.编写源程序

在任何一文本编辑器中,新建一个文件,键入如下内容:

并保存为HelloWorld.java的文件。

重点

文件中字母的大小写必须准确

文件名必须正确,包括大小写

文件保存的格式必须正确

2.编译

打开一个DOS命令窗口,进入保存HelloWorld.java的目录,用Java编译器javac.exe编译这个源文件。在命令行中敲入:

如果编译成功,编译器在同一个目录下产生一个与Java源文件(HelloWorld.java)同名的.class字节码文件HelloWorld.class。

难点

如果编译失败,请查看敲入的文件名是否正确,尤其是大小写

如果程序本身有语法错误,编译将失败,并指出错误的位置

如果显示“Bad command or file name”则可能是环境变量path设置有误

3.运行

使用java.exe运行编译后生成的.class文件,打开一个DOS命令窗口,进入保存HelloWorld.class的目录,在命令提示符下敲入:

难点

使用java HelloWorld命令时,HelloWorld.class文件不加后缀名.class

该命令会启动Java虚拟机,并读入HelloWorld.class文件进行执行。如果正确运行则屏幕上显示:

Hello World!

运行时常见的错误是当前目录下没有要运行的指定文件。

4.程序分析

每个Java程序至少包含一个类,该程序首先用保留字class来声明一个新的类,其类名为HelloWorld,保留字public说明它是一个公共类。整个类定义由大括号({})括起来。

public static void main(String[]args)是在该类中定义了一个main()方法,它是固定用法。其中,public表示访问权限,指明所有的类都可以使用这一方法;static指明该方法是一个类方法,它可以通过类名直接调用;void则指明main()方法不返回任何值。main()方法定义中,()中的String args[]是传递给main()方法的参数,参数名为args,它是类String的一个实例。参数可以为0个或多个,每个参数用“类名 参数名”来指定,多个参数间用逗号分隔。Java解释器在没有生成任何对象的情况下,以main()作为入口来执行程序。

每个应用程序必须按照如上的格式来定义main()方法。Java程序中可以定义多个类,每个类中可以定义多个方法,但是最多只能有一个公共类,main()方法也只能有一个作为程序的入口。

在main()方法的实现(用大括号标识)中,只有一条语句:System.out.println("HelloWorld!"),这是Java的打印语句,用来在屏幕上显示一串信息,其中引号中的字符串可以更换为其他要显示的内容。

//后的内容为注释。

考点

Java语言的特点和实现机制

J2SE的下载和操作

Java的目录结构和API结构

开发环境设置

Java程序结构和编译执行过程1.5 例题解析

一、选择题

1.Java语言具有许多优点和特点,下列选项中,哪个反映了Java程序并行机制的特点?()

A)安全性

B)多线程

C)跨平台

D)可移植

2.Applet可以做下列哪些操作?()

A)读取客户端文件。

B)在客户端主机上创建新文件。

C)在客户端装载程序库。

D)读取客户端部分系统变量。

3.下列说法不正确的是()

A)Java实际是一种常规用途的程序设计语言,可解决任何类型的问题。

B)Java可以编制能单独运行的应用程序。

C)Java程序的优势在于它的执行速度快。

D)Java程序的优势在于它的可移植性上。

4.下列()不是Java的特性。

A)分布式

B)可移植

C)多线程

D)面向过程

5.Java程序可以同时执行几个任务,不同的任务互不干涉。这反映了Java的()特性?

A)多线程

B)结构中立

C)分布式

D)高效率

6.下列说法正确的是()

A)Java只是一种编程语言。

B)Java只是一种应用和开发环境。【答案】B【解析】安全性是指Java执行多层安全机制,以提供足够的安全保障的特点;跨平台和可移植是指Java一次编写到处运行;多线程反映了Java程序可同时执行多个任务的并行机制特点。【答案】A【解析】下载到用户计算机中的字节代码在其被执行前要经过一个核实工具,以确保不含病毒。字节代码被核实后才由Java解释器来执行,解释器阻止程序对内存的直接访问和对本地数据的修改。以上操作只有A可以被执行。【答案】C【解析】Java实际是一种常规用途的程序设计语言,可解决任何类型的问题。在这点上,Java的优势不仅反映在它的可移植性上,也反映在编程本身,即Java提供的许多特性使我们能在较短的时间里创建出更健壮的程序。但其最明显的问题是执行速度较慢(Java对此一直在进行多方面的调整)。此外,Java本身也存在一些限制,使得它不十分适合解决某些特殊的编程问题。因此,C说法错误。【答案】D【解析】Java编程语言是一种高级语言,它具有简单、面向对象、分布式、解释型、鲁棒性、安全、结构中立、可移植、高效率、多线程、动态等特点。它是面向对象的而不是面向过程的,因此D不是Java的特性。【答案】A【解析】多线程是指程序可以同时执行几个任务,不同的线程处理不同的任务,互不干涉。Java支持多线程机制,使应用程序可以同时进行不同的操作,处理不同的事件,这样可以容易的实现网络上的实时交互操作。它还提供了易于使用的同步机制,使程序设计简便。【答案】D【解析】Java是一种编程语言,它能编写应用程序和小应用程序。Java也是一种应用和开发环境,它提C)Java不仅是一种编程语言,也是一种应用和开发环境,但不是程序发布平台。

D)Java不仅是一种编程语言,也是一种应用和开发环境,同时还是一个程序发布平台。

7.随着Java技术的不断发展,Sun公司根据市场进一步将Java细分,其中针对普通PC应用的是()。

A)J2EE

B)J2SE

C)J2ME

D)JDK

8.J2SE安装后,在安装路径下有若干子目录,其中包含Java开发包中开发工具的是()目录?

A)\bin

B)\demo

C)\include

D)\jre

9.J2SE作为一种应用和开发环境,提供了一整套实用工具,其中()是Java语言的编译工具?

A)java

B)javadoc

C)javap

D)javac

10.要运行一名为HelloWorld.class的类文件,需要在DOS提示符下键入()命令。

A)java HelloWorld.class

B)java HelloWorld

C)javac HelloWorld.class

D)javac HelloWorld

11.Java解释器在没有生成任何对象的情况下,以main()作为入口来执行程序。下列main方法的写法正确的是()。

A)public static void main(String[]args)

B)public static int main(String[]args)

供了一整套工具和类库。同时,Java还是一个程序发布平台,具有两种主要的“发布环境”:一种是Java运行时环境(JRE——Java Runtime Environment),它包含了完整的类文件包;另一种是浏览器,许多主要的浏览器都提供了Java解释器和运行时环境。因此D正确。【答案】B【解析】随着Java技术的不断发展,Sun公司根据市场进一步将Java细分为:针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本。【答案】A【解析】安装J2SE后,安装路径下有如下主要目录:

\bin 包含Java开发包中开发工具。

\demo 包含带有源代码的例子,教你如何在Java平台中编程。

\include 包含用于支持本地代码编程的C语言头文件。

\jre Java开发工具所使用的Java运行时环境的根目录。

\lib 包含开发工具使用的文件。其中包括tools.jar和dt.jar。【答案】D【解析】java是Java解释器,用于直接从类文件执行Java应用程序字节代码。javadoc用于生成API文档。javap是Java反汇编器。javac是Java语言的编译器。因此D正确。【答案】B【解析】javac是Java语言的编译器,用于将源文件编译为字节码文件,所以C、D不正确。java是Java解释器,用于运行类文件,键入命令时,后面直接跟类名,不加.class,所以A不正确,B正确。【答案】A【解析】main()方法有比较固定的写法——public static void main(String[]args)。其中public表示访问权限,指明所有的类都可以使用这一方法;static指明该方法是一个类方法,它可以通过类名直接调用;C)public void main(String[]args)

D)public void main()

void则指明main()方法不返回任何值;括号中的String args[]是传递给main()方法的参数,参数名为args,它是类String的一个实例。

二、填空题

1.当你编译一个用Java语言写的程序时,编译器将源文件转换为Java虚拟机可理解的中间代码,这种中间代码称为()。【答案】字节码【解析】Java编译器将源文件转换为字节码文件。

2.用Java语言编写程序,既可以编写能单独运行的Java应用程序,也可以编写应用于网页的()。【答案】Java小应用程序/Applet【解析】Java程序有可以单独运行的Java应用程序,也有应用于网页的Java小应用程序Applet。

3.Java语言同所有面向对象编程语言一样都支持三个概念:()、()和()。【答案】封装性;多态性;继承性【解析】Java语言面向对象的特性非常彻底,它同所有面向对象编程语言一样都支持三个概念——封装性、多态性和继承性。

4.Java平台由()和()两部分组成。【答案】Java虚拟机/JVM/Java Virtual Machine;Java应用编程接口/Java API/Java Application Programming Interface【解析】平台是指程序运行的硬件或软件环境。Java平台是运行于操作系统和硬件之上的纯软件平台。它由Java虚拟机和Java应用编程接口两部分组成。

5.随着Java技术的不断发展,Sun公司根据市场进一步将Java细分为:针对企业网应用的()、针对普通PC应用的()和针对嵌入式设备及消费类电器的()三个版本。【答案】J2EE/Java 2 Enterprise Edition;J2SE/Java 2 Standard Edition;J2ME/Java 2 Micro Edition【解析】随着Java技术的不断发展,Sun公司根据市场进一步将Java细分为:针对企业网应用的J2EE(Java 2 Enterprise Edition)、针对普通PC应用的J2SE(Java 2 Standard Edition)和针对嵌入式设备及消费类电器的J2ME(Java 2 Micro Edition)三个版本。

6.J2SE安装后,在安装路径下有若干子目录,其中()子目录包含Java开发包中的开发工具。【答案】\bin【解析】安装J2SE后,安装路径下有如下主要目录:

\bin 包含Java开发包中的开发工具。

\demo 包含带有源代码的例子,教你如何在Java平台中编程。

\include 包含用于支持本地代码编程的C语言头文件。

\jre Java开发工具所使用的Java运行时环境的根目录。

\lib 包含开发工具使用的文件。其中包括tools.jar和dt.jar。

7.J2SE的主要工具安装在\bin子目录下,其中包含如下常用的实用程序,其中()是Java语言的编译器,()是Java语言的解释器。【答案】javac;java【解析】javac是Java语言的编译器,将Java源代码转换成字节码。java是Java解释器,用于直接从类文件中执行Java应用程序字节代码。

8.编写如下名为Welcome.java的源程序,在屏幕上显示“Welcome You!”,补全程序。【答案】【1】Welcome;【2】main;【3】" Welcome You!"【解析】每个Java程序至少包含一个类,用保留字class来声明。保留字public说明它是一个公共类,则其类名应与文件名同名,为Welcome,所以【1】填Welcome。每个应用程序必须定义main()方法,所以【2】填main。System.out.println是Java的打印语句,用来在屏幕上显示一串信息,要显示的内容用引号括起的字符串表示,这里要显示“Welcome You!”,所以【3】填"Welcome You!"。1.6 练习题

一、选择题

1.Java语言是()。

A)机器语言

B)汇编语言

C)面向过程的语言

D)面向对象的语言

2.保证Java可移植性的特征是()。

A)可跨平台

B)分布式计算

C)安全性

D)面向对象

3.下列关于Java语言的叙述中,正确的是()。

A)Java是不区分大小写的

B)源文件名必须与public类型的类名相同

C)源文件中public类的数目不限

D)源文件名其扩展名为.jar

4.main方法的返回类型是()。

A)public

B)static

C)void

D)main

5.下列说法中正确的是()。

A)以//开始的为多行注释

B)Java语言以方法为程序的基本单位

C)Applet是Java的一类特殊的应用程序,它可嵌入网页

D)Java不区分大小写

6.在Java的实现机制中,下列()属于垃圾回收机制?

A)字节编译

B)堆栈溢出检查

C)语法检查

D)内存跟踪

7.下列()不是Java虚拟机的执行特点?

A)异步处理

B)异常处理

C)动态链接

D)多线程

8.下列()命令是Java的编译命令?

A)javac

B)java

C)javadoc

D)appletviewer

9.下列()命令是Java类文件解释器?

A)javac

B)java

C)javadoc

D)appletviewer

10.下列关于Java程序结构说法错误的是()。

A)package语句必须放在源文件的第一句

B)源文件可以没有import语句

C)一个源文件可以有多个类定义

D)一个源文件可以定义多个public类

二、填空题

1.一个Java源文件中最多只能有一个()类,其他类的个数不限。

2.Java语言通过接口实现()继承,使类具有更灵活的扩展性。

3.Java语言通过()机制简化程序设计者的内存管理工作。

4.Java源文件的后缀名为(),编译好的字节码文件后缀名为()。

5.任何处理器只要配备了()就可以运行Java的字节码文件。

6.安装好J2SE后,为了能在任何位置使用其编译和运行等工具,需要设置()。

7.在J2SE的工具中,()可以执行HTML文件中的Java Applet。

8.Java自带的类和接口以包的形式进行组织,形成一定的层次结构,称为()。

9.一个完整的Java源程序应该包括5个部分:()、()、()、()和()。

10.若要运行MyTest.class文件,应该键入()命令。第2章 Java语言基础知识

内容及考核知识点

Java简单数据类型及转换

运算符和表达式运算

Java语言的基本语句

Java程序规范2.1 Java简单数据类型及转换2.1.1 常量和变量

和其他高级语言一样,Java可以定义各种类型的常量和变量,并通过运算符组成表达式进行各种运算。下面是一个简单的程序,程序中定义了用于保存整数的常量i和变量j,其中i的值为2,将i的值加2后赋给j,最后在屏幕上打印j的值。屏幕上将显示4。

1.标识符

程序员对程序中的各个元素加以命名时使用的命名记号称为标识符(identifier)。在上面的例子中,类的名字AddTwo以及常量的名字i、变量的名字j都是标识符。Java语言的标识符要满足如下规则:

· 以字母、下划线(_)、美元符($)开始,不能以数字作为第一个字母。

· 后面的字符可以是字母、下划线、美元符、数字。

· 不能使用Java的保留字。

例如,myName、value-1、dollar$、User_Name、_sys_val、$change为合法的标识符,而2mail room#、class为非法的标识符。

重点

Java区分大小写,所以myName和MyName是不同的标识符

标识符的选取应具有一定的含义,以增加程序的可读性

2.保留字

保留字(reserved word)也称为关键字,它们是Java语言中预留的具有专门意义和用途的标识,不能当做一般的标识符使用。表2-1列出了Java所有保留字。表2-1 Java的保留字注意 java语言中的保留字均用小写字母表示。其中用*标注的goto和const虽然在Java中不被使用,但仍是保留字,不能作为标识符。用**标注的strictfp是Java 2新添加的保留字。

3.常量

常量是不可以改变的量,Java中的常量值是用文字串表示的,它区分为不同类型常量,如整型常量123,实型常量1.23,字符常量'a'和布尔常量true、false以及字符串常量"This is a constant string."。Java中把一个标识符定义为常量用保留字final来实现。在上面的例子中final int i=2;就定义了一个整型常量i。其定义格式为:

final 类型标识符 常量名=值;

如:final int NUM=100;//定义了一个值为100的整型常量NUM。

也可以一次定义多个常量,各常量间用逗号间隔,格式为:

final 类型标识符 常量名1=值1,常量名2=值2;

如:final int A=3,B=5;//同时定义了值为3的整型常量A和值为5的整型常量B。

4.变量

变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。变量中的值可以改变。在上面的例子中int j;就定义了一个整型变量j。其定义格式为:

类型标识符 变量名[=初始值];

如:int count;//定义了一个整型变量count

char a='y';//定义了一个字符型变量a,初始值为'y'。

也可以同时定义多个变量,各变量间用逗号隔开,格式为:

类型标识符 变量名1[=值1],变量名2[=值2];

如:int a,b,c;//同时定义了3个整型变量a、b、c。

int d1,d2=0;//同时定义了两个整型变量d1和d2,其中d2的初始值为0。

变量名必须是合法的标识符,变量类型可以为任意一种Java数据类型。变量的作用域指明可访问该变量的一段代码。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数和例外处理参数。在一个确定的域中,变量名应该是惟一的。通常,一个域用大括号({})来划定。局部变量在方法或方法的一个块代码中声明,它的作用域是它所在的代码块(整个方法或方法中的某块代码)。类变量在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。方法参数传递给方法,它的作用域就是这个方法。异常处理参数传递给异常处理代码,它的作用域就是异常处理部分。

重点

在一个确定的域中,变量名应该是惟一的。2.1.2 基本数据类型

Java语言的数据类型分为简单数据类型和引用数据类型。简单数据类型包括整数类型、实数类型、字符类型和布尔类型;复合数据类型包括类(class)、接口(interface)和数组。这里先介绍几种简单数据类型。

1.整数类型

Java 的整型常数有三种表示形式:十进制整数、八进制整数和十六进制整数。默认为十进制整数,如123,-456,0。八进制整数以0开头,如0123表示十进制数83,-011表示十进制数-9。十六进制整数,以0x或0X开头,如0x123表示十进制数291,-0X12表示十进制数-18。如下程序:

输出为15、015、0x15,转换为十进制数

15

13

21

整型变量的类型有byte、short、int、long四种。表2-2列出各类型所在内存的位数和其表示范围。表2-2 整数类型

如:byte b;//指定变量b为byte型

short s;//指定变量s为short型

int i;//指定变量i为int型

long l;//指定变量l为long型

int类型是最常使用的一种整数类型。但对于大型计算,常会遇到很大的整数,超出int类所表示的范围,这时要使用long类型。

由于不同的机器对于多字节数据的存储方式不同,可能是低字节向高字节存储,也可能是从高字节向低字节存储,这样,在分析网络协议或文件格时,为了解决不同机器上的字节存储顺序问题,用byte类型来表示数据是合适的。而在通常情况下,由于其表示的数据范围很小,容易造成溢出,应避免使用。

short类型则很少使用,它限制数据的存储为先高字节,后低字节,这样在某些机器中会出错。

一个整型常量在机器中默认具有int型的值,占32位。对于long型值,则要在数字后加L或l,如123L表示一个长整数,它在机器中占64位。整数常量在向整数类型或字符型变量赋值时可自动转换为相应的变量类型。但如果实际的数值比变量类型长,系统将提示可能存在精度损失。

2.实数类型

Java 的实数常量有两种表示形式:十进制数形式和科学计数法形式。十进制数形式由数字和小数点组成,且必须有小数点,如0.123,.123,123.,123.0;科学计数法形式用e或E表示10的次方,3如:123e3或123E3相当于123×10,其中e或E之前必须有数,且e或E后面的指数必须为整数。

实型变量的类型有float和double两种,表2-3列出这两种类型所占内存的位数和其表示范围。表2-3 实数类型

如:float f;//指定变量f为float型

double d;//指定变量d为double型

双精度类型double比单精度类型float具有更高的精度和更大的表示范围,所以比较常用。

一个实型常量在机器中默认具有double型的值常数,占64位。对于float型的值,要在数字后加f或F,如12.3F,它在机器中占32位,且表示精度较低。

3.字符类型

字符常量是用单引号括起来的一个字符,如'a','A'。它有三种表示形式:普通字符、转义字符和Unicode代码。对于普通的字母X可以表示为'X',对于有些难以表示或易造成歧义的字符可以用反斜杠(\)表示转义,此时其后的字符转变为另外的含义。

如:\'单引号字符

\\反斜杠字符

\r 回车

\n 换行

\f 走纸换页

\t 横向跳格

\b 退格

\ddd 1到3位8进制数据所表示的字符(ddd)

与C、C++不同,Java使用Unicode代码,Unicode代码使用16位表示一个字符,可以表示很多国家的文字,若其中前八位为0则和ASCII集相同。表示时以“\u”开头,后跟Unicode代码。如\u0041表示ISO拉丁码的'A'。

字符型变量的类型为char,它在机器中占16位,其范围为0~65535。

如:char c='a';//指定变量c为char型,且赋初值为'a'。

在Java中,int型值可以自动转换为char型,char型值也可以自动转换为int型,如下程序:

A

A

A

65

4.布尔类型

保留字boolean表示布尔型,布尔型数据只有两个值:true和false,并且与C语言不同,它们不对应于任何整数值。在控制语句中常用到它。布尔型变量的定义如:

boolean b=true;//定义b为布尔型变量,且初值为true2.1.3 类型转换

1.自动类型转换

Java允许整型、实型、字符型数据进行混合运算。当两个类型不同的变量进行二元运算时,Java自动把精度较低的类型转换为另一种精度较高的类型。如一个变量是int型,另一个变量是double型,由于double型比int型精度高,所以先将int型转换为double型再进行计算,运算结果为double型。

不同数据类型的精度关系如图2-1所示。图2-1 不同数据类型的精度关系

转换规则见表2-4。表2-4 不同数据类型的转换规则

2.强制类型转换

总可以将精度低的类型的值赋给精度高的类型的变量,如将long型的值赋给float型的变量,但是精度高的类型的值赋给精度低的类型的变量必须进行强制类型转换。强制类型转换的语法格式为:(目标类型)要转换的变量名或值

如:int i;

byte b=(byte)i;//把int型变量i强制转换为byte型

float f=(float)10.1;//10.1默认为double类型,强制转换为float型后才能赋给f

难点

使用强制类型转换时必须小心,它很可能造成信息丢失,从而带来不精确的结果。2.2 运算符和表达式运算2.2.1 运算符

同其他编程语言一样,Java也可以对各种类型的数据进行加工,我们把这种加工过程称为运算,其中表示各种不同运算的符号称为运算符,参与运算的数据称为操作数。

按操作数的数目来分,运算符有一元运算符(如-5)、二元运算符(如a+b)和三元运算符(如bl?true:false)。按照运算符功能的来分,基本的运算符分为算术运算符、关系运算符、逻辑运算符、位运算符、赋值运算符、条件运算符等。

1.算术运算符

Java编程语言支持整型数和浮点型数的各种算术运算,包括+(加)、-(减)、*(乘)、/(除)和%(取模)。表2-5对Java的二元算术运算做了总结。表2-5 二元算术运算

难点

Java 对加运算符进行了扩展,使它能够进行字符串的连接,如"abc"+"de",得到串"abcde"。

对取模运算符%,其操作数可以为浮点数,如32.3%5=2.3。

+和-运算符除了二元形式外,还可以用作一元形式,表示正号和负号,如表2-6所示。表2-6 正号和负号

一元运算符还有增值/减值运算符(++、--),++代表增加1,--代表减少1,它可以用在操作数的左边或右边,但含义不同,如表2-7所示。表2-7++和--

如:int i=3;

int j=i++;//执行后i=4,j=3

int k=++i;//执行后i=5,k=5

2.关系运算符

关系运算符用来比较两个值,返回布尔类型的值true或false。如:count>=3。

关系运算符都是二元运算符,如表2-8表所示。表2-8 关系运算符

难点

Java中,任何数据类型的数据(包括基本类型和组合类型)都可以通过==或!=来比较是否相等。

Java中关系运算符返回的结果为true或false,而不是C、C++中的1或0。

关系运算符常与布尔逻辑运算符一起使用,作为流控制语句的判断条件。

3.逻辑运算符

Java编程语言支持逻辑运算非(!)、与(&)、或(|)、异或(^),运算规则如表2-9所示。表2-9 逻辑运算符续表

逻辑运算符运算时,先计算运算符两端的表达式,再进行逻辑运算。其实对于与运算,如果左边表达式的值为false,则无论右边表达式计算结果如何,与运算的结果都为false;同样,对于或运算如果左边表达式的值为true,则不必对运算符右边的表达式再进行运算,整个表达式的结果为true。在这种情况下就可以跳过对右边表达式的计算,表2-10中短路与(&&)、短路或(||)就适应这样的情形。表2-10 短路与、短路或运算符

请看如下示例程序:

输出结果为:

101

100

4.位运算符

位运算符用来对二进制位进行操作,包括左移(<<),带符号位右移(>>),无符号位右移(>>>),按位与(&),按位或(|),按位异或(^),按位取反(~)。这类运算符的操作数只能为整型和字符型数据。其中只有按位取反(~)是一元运算符,其余为二元运算符。运算规则如表2-11所示。表2-11 位运算符

请看如下示例程序:

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载