
本书在保持第1版基本框架和特色的基础上,更新了部分章节,并对一些知识点进行了扩充,更便于读者学习。全书内容分为12章,包括Java概述,Java语言基础,Java控制结构、数组和字符串,Java面向对象编程,接口、内部类和Java API基础,异常处理,Applet程序,图形用户界面,输入输出流,多线程,访问数据库以及网络程序设计等内容。
本书既适合作为普通高等院校计算机、网络工程等专业本科生(或高职高专学生)的Java程序设计课程教材,也适合从事软件开发的技术人员培训、自学使用。
出 版 说 明
信息时代早已显现其诱人魅力,当前几乎每个人随身都携有多个媒体、信息和通信设备,享受其带来的快乐和便捷。
我国高等教育早已进入大众化教育时代,而且计算机技术发展很快,知识更新速度也在快速增长,社会对计算机专业学生的专业能力要求也在不断翻新。这就使得我国目前的计算机教育面临严峻挑战。我们必须更新教育观念——弱化知识培养目的,强化对学生兴趣的培养,加强培养学生理论学习、快速学习的能力,强调培养学生的实践能力、动手能力、研究能力和创新能力。
教育观念的更新,必然导致教材的更新。一流的计算机人才需要一流的名师指导,而一流的名师需要精品教材的辅助,而精品教材也将有助于催生更多一流名师。名师们在长期的一线教学改革实践中,总结出了一整套面向学生的独特的教法、经验、教学内容等。本套丛书的目的就是推广他们的经验,并促使广大教育工作者进一步更新教育观念。
在教育部相关教学指导委员会专家的帮助和指导下,在各大学计算机院系领导的协助下,清华大学出版社规划并出版了本系列教材,以满足计算机课程群建设和课程教学的需要,并将各重点大学的优势专业学科的教育优势充分发挥出来。
本系列教材行文注重趣味性,立足课程改革和教材创新,广纳全国高校计算机专业的一线优秀名师参与,从中精选出佳作予以出版。
本系列教材具有以下特点。
1. 有的放矢
针对计算机专业学生并站在计算机课程群建设、技术市场需求、创新人才培养的高度,规划相关课程群内各门课程的教学关系,以达到教学内容互相衔接、补充、相互贯穿和相互促进的目的。各门课程功能定位明确,并去掉课程中相互重复的部分,使学生既能够掌握这些课程的实质部分,又能节约一些课时,为开设社会需求的新技术课程准备条件。
2. 内容趣味性强
按照教学需求组织教学材料,注重教学内容的趣味性,在培养学习观念、学习兴趣的同时,注重创新教育,加强“创新思维”“创新能力”的培养、训练;强调实践,案例选题注重实际和兴趣度,大部分课程各模块的内容分为基本、加深和拓宽内容3个层次。
3. 名师精品多
广罗名师参与,对于名师精品,予以重点扶持,教辅、教参、教案、PPT、实验大纲和实验指导等配套齐全,资源丰富。同一门课程,不同名师分出多个版本,方便选用。
4. 一线教师亲力
专家咨询指导,一线教师亲力;内容组织以教学需求为线索;注重理论知识学习,注重学习能力培养,强调案例分析,注重工程技术能力锻炼。
经济要发展,国力要增强,教育必须先行。教育要靠教师和教材,因此建立一支高水平的教材编写队伍是社会发展的需要,特希望有志于教材建设的教师能够加入到本团队。通过本系列教材的辐射,培养一批热心为读者奉献的编写教师团队。
清华大学出版社
随着互联网的快速发展,网络程序开发大步迈进。Java似乎就是为此而诞生的,它具有的跨平台性、面向对象、分布性和安全性等诸多特点,使其确立了一段时期内无与伦比的网络编程优势。从20世纪90年代初Oak的问世,以及几年后Java的正式发布,到现在已经跨越了二十多年。现在,电子商务、远程医疗、网上银行、虚拟课堂等许多应用系统基本上仍使用Java技术开发。
当前,普通高等学校的计算机、网络工程等专业都开设了Java程序设计课程,还有其他为数不少的专业也把Java语言列入教学计划。教材是体现教学内容的知识载体,是进行教学的基本工具。本书在编写时,从现阶段高校使用最多的Java系列教材中吸取经验,结合作者在长期教学过程中的体会和积累,旨在向高校学生奉献一本有特色的教材,向工程技术人员和其他有兴趣的读者提供一本有价值的参考书。本书具有以下特点:
1. 面向实用新技术
本书介绍Java程序设计的多项实用技术,采用JDK 6、Eclipse、MySQL作为Java开发运行环境,并将其反映在教材中。强调学以致用,将新技术与理论、实践相结合,注重培养学生的能力和创新意识。
2. 涵盖内容较广泛
本书由浅入深、循序渐进地介绍了Java程序设计的基本概念、方法和应用,涵盖了Java的语法要点和知识要素。对于Java系统开发使用的访问数据库技术、图形用户界面等,也进行了较为详细的说明。
3. 例题讲解条理化
本书例题十分丰富,典型实例紧密结合知识要点。全部例子包括题目要求、程序代码、程序运行结果和程序分析。以此编写方式,有助于读者掌握Java开发要领,快速熟悉重点和难点部分。书中程序代码都经过认真调试,可以直接运行,方便读者上机操作。
本书是根据专业建设的需要,对第1版进行修订而形成的。本书保持了第1版的基本框架和特色,更新了第2章和第3章,并对一些知识点进行了扩充,更便于读者学习。全书内容分为12章,包括Java概述,Java语言基础,Java控制结构、数组和字符串,Java面向对象编程,接口、内部类和Java API基础,异常处理,Applet程序,图形用户界面,输入输出流,多线程,访问数据库以及网络程序设计等。另外,在每章的最后均列出若干习题,供读者练习。为了便于说明,为每一行程序代码都设置了序号,这些序号标记不能作为Java程序的组成部分,实际程序开发时将其去掉即可。
本书由牛晓太任主编并负责全书的总体策划与通审、定稿工作,齐艳珂、王亚楠、王洋任副主编,王杰、李向参编。其中牛晓太编写第1章、第6章、第7章,齐艳珂编写第4章、第5章,王亚楠编写第10章、第11章,王洋编写第2章、第3章,王杰编写第9章、第12章,李向编写第8章。
在本书的编写和出版过程中,参阅了大量书籍、文献等资料,得到了清华大学出版社的支持和帮助。在此表示衷心的感谢。
尽管书稿是作者多年教学经验的总结,但由于时间仓促,作者知识水平有限,书中难免存在疏漏和不足,恳请读者批评指正,以便使本书得以改进和完善。
编者2017年10月
第1章Java概述1
1.1Java简介1
1.1.1Java的产生1
1.1.2Java的特点1
1.1.3Java三大平台2
1.2Java的开发和运行环境3
1.2.1Java虚拟机3
1.2.2JDK的安装3
1.2.3环境变量的设置5
1.2.4Java API文档6
1.3Java程序开发实例7
1.3.1Java应用程序实例8
1.3.2Java小程序实例10
1.4Eclipse开发平台11
1.4.1Eclipse安装11
1.4.2Eclipse平台的项目开发12
习题114第2章Java语言基础15
2.1标识符和关键字15
2.1.1标识符15
2.1.2关键字16
2.1.3分隔符16
2.1.4注释符17
2.2数据类型、常量与变量18
2.2.1数据类型18
2.2.2常量19
2.2.3变量19
2.3运算符20
2.3.1算术运算符21
2.3.2关系运算符22
2.3.3逻辑运算符22
2.3.4位运算符24
2.3.5赋值运算符24
2.3.6三元运算符26
2.3.7其他运算符26
2.4表达式27
2.4.1运算符的优先级27
2.4.2数据类型转换28
2.4.3应用举例29
习题232第3章Java控制结构、数组和字符串34
3.1顺序结构34
3.1.1语句和语句块34
3.1.2顺序结构35
3.2分支结构35
3.2.1if语句36
3.2.2if语句的嵌套38
3.2.3多分支if语句39
3.2.4switch语句40
3.3循环结构42
3.3.1for语句42
3.3.2while语句45
3.3.3do语句46
3.3.4循环嵌套47
3.4转移语句50
3.4.1break语句50
3.4.2continue语句51
3.5数组52
3.5.1数组的声明52
3.5.2数组的初始化53
3.5.3数组元素的引用55
3.6字符串55
3.6.1字符串的声明和初始化56
3.6.2字符串的处理56
习题357第4章Java面向对象编程60
4.1面向对象编程概述60
4.1.1面向对象的程序设计方法60
4.1.2类和对象60
4.1.3面向对象编程的特点60
4.1.4Java程序设计语言61
4.2类61
4.2.1类的定义61
4.2.2成员变量62
4.2.3成员方法62
4.2.4构造方法67
4.3对象69
4.3.1对象的声明69
4.3.2对象的创建及初始化69
4.3.3对象的使用70
4.3.4对象的销毁74
4.3.5this关键字75
4.4类的封装性76
4.4.1包76
4.4.2访问权限79
4.4.3访问器81
4.4.4静态成员82
4.5类的继承性84
4.5.1继承的概念84
4.5.2子类85
4.5.3super关键字87
4.5.4最终类和抽象类89
4.6类的多态性90
4.6.1多态的概念90
4.6.2方法重载90
4.6.3方法覆盖92
4.6.4绑定93
习题494第5章接口、内部类和Java API基础99
5.1接口99
5.1.1接口的概念99
5.1.2接口的声明99
5.1.3接口的实现100
5.1.4常用系统接口103
5.2内部类和内部接口104
5.2.1内部类和内部接口的概念104
5.2.2内部类的定义和使用105
5.3java.lang包中的基础类108
5.3.1Object类108
5.3.2System类109
5.3.3Math类110
5.3.4数据类型类110
5.4java.util包中的工具类112
5.4.1日期类112
5.4.2Random类113
5.4.3Scanner类114
5.4.4集合类114
习题5117第6章异常处理120
6.1异常的概念120
6.2异常类122
6.2.1Error类及其子类123
6.2.2Exception类及其子类123
6.3异常处理124
6.3.1try…catch…finally语句124
6.3.2抛出异常128
6.4创建自己的异常类130
习题6131第7章Applet程序135
7.1Applet简介135
7.1.1Java Applet说明135
7.1.2Applet的形式及其类的层次135
7.2Applet的生命周期和显示方法136
7.2.1Applet的生命周期136
7.2.2Applet的显示方法137
7.2.3Applet的编写与执行138
7.3HTML中的Applet标记139
7.4Applet应用举例140
习题7143第8章图形用户界面146
8.1AWT与Swing146
8.1.1AWT概述146
8.1.2AWT的基本组件147
8.1.3Swing概述149
8.1.4AWT与Swing的区别150
8.2事件处理150
8.2.1Java中的事件处理机制151
8.2.2键盘事件154
8.2.3鼠标事件156
8.2.4其他常用事件159
8.3布局管理器171
8.3.1布局管理器概述172
8.3.2常用布局172
8.4Swing组件175
8.4.1Swing包中类的关系175
8.4.2Swing中的容器176
8.4.3Swing中的常用组件187
8.4.4Swing中的新增组件190
8.4.5Swing事件概述194
习题8195第9章输入输出流197
9.1I/O流概述197
9.1.1数据流概念197
9.1.2Java数据流介绍197
9.2字节流200
9.2.1InputStream和OutputStream200
9.2.2FileInputStream和FileOutputStream201
9.2.3RandomAccessFile204
9.2.4BufferedInputStream和BufferedOutputStream206
9.2.5ByteArrayInputStream和ByteArrayOutputStream208
9.2.6SequenceInputStream211
9.2.7标准输入输出流212
9.3字符流213
9.3.1Reader和Writer214
9.3.2InputStreamReader和OutputStreamWriter214
9.3.3FileReader和FileWriter217
9.3.4StringReader和StringWriter217
9.3.5其他类型的字符流219
9.4文件的处理220
9.4.1文件信息获取和属性更改220
9.4.2文件和操作223
9.5串行化224
9.5.1串行化的概念224
9.5.2串行化的方法225
习题9226第10章多线程228
10.1线程的概念228
10.1.1多线程编程的优势228
10.1.2多线程编程的难点229
10.2线程的实现229
10.2.1创建Java线程229
10.2.2Java线程的状态232
10.2.3Java线程的优先级233
10.2.4守护线程233
10.2.5终止另一个线程234
10.3线程同步236
10.3.1同步访问共享资源236
10.3.2协作完成任务239
习题10242第11章访问数据库244
11.1数据库简介244
11.1.1关系型数据库系统概述244
11.1.2MySQL数据库简介246
11.1.3MySQL Workbench简介251
11.2使用JDBC进行数据库编程251
11.2.1JDBC架构简介252
11.2.2使用JDBC访问数据库252
11.2.3JDBC高级特性261
习题11269第12章网络程序设计271
12.1网络的基本概念271
12.1.1IP地址与端口号271
12.1.2Java中IP地址及端口号表示272
12.1.3客户服务器工作模式274
12.1.4TCP与UDP通信274
12.2URL的使用274
12.2.1URL的表示274
12.2.2URL类275
12.2.3通过URLConnection实现双向通信277
12.3基于TCP的网络通信278
12.3.1客户端与服务器端通信278
12.3.2多客户端通信284
12.4基于UDP的网络通信286
12.4.1UDP数据报文包286
12.4.2UDP通信287
习题12291参考文献293
1. 面向实用新技术
本书介绍Java程序设计的多项实用技术,采用JDK 6、Eclipse、MySQL作为Java开发运行环境,并将其反映在教材中。强调学以致用,将新技术与理论、实践相结合,注重培养学生的能力和创新意识。
2. 涵盖内容较广泛
本书由浅入深、循序渐进地介绍了Java程序设计的基本概念、方法和应用,涵盖了Java的语法要点和知识要素。对于Java系统开发使用的访问数据库技术、图形用户界面等,也进行了较为详细的说明。
3. 例题讲解条理化
本书例题十分丰富,典型实例紧密结合知识要点。全部例子包括题目要求、程序代码、程序运行结果和程序分析。以此编写方式,有助于读者掌握Java开发要领,快速熟悉重点难点部分。书中程序代码都经过认真调试,可以直接运行,方便读者上机操作。
牛晓太 教授 博士 郑州航空工业管理学院学术带头人。中国航空学会会员。 发表论文30余篇,曾获得省级自然科学优秀学术论文二等奖、三等奖4项;主持省部级项目多项,撰写学术专著多部