新書推薦:
《
UE5虚幻引擎必修课(视频教学版)
》
售價:NT$
505.0
《
真需求
》
售價:NT$
505.0
《
阿勒泰的春天
》
售價:NT$
230.0
《
如见你
》
售價:NT$
234.0
《
人格阴影 全新修订版,更正旧版多处问题。国际分析心理学协会(IAAP)主席力作
》
售價:NT$
305.0
《
560种野菜野果鉴别与食用手册
》
售價:NT$
306.0
《
中国官僚政治研究(一部洞悉中国政治制度演变的经典之作)
》
售價:NT$
286.0
《
锂电储能产品设计及案例详解
》
售價:NT$
505.0
內容簡介:
本书是普通高等教育十一五*规划教材《Java语言程序设计》的第2版。全书共11章:第1章介绍Java语言的基本知识和基本概念;第2章介绍Java语言的基本语法、运算符和基本语句等语言结构化程序设计内容;第3章介绍Java语言面向对象程序设计的主要内容;第4章介绍Java语言的异常处理;第5章介绍Java语言的图形用户界面技术;第6章介绍Java语言与输入输出有关的流和文件;第7章介绍Java语言的多线程;第8章介绍Java语言与数据结构和数据处理有关的类和接口;第9章介绍Java Applet程序设计;第10章介绍Java语言的网络与通信程序设计;第11章介绍Java语言的JDBC技术。本书既介绍了Java语言的基本语法和基本概念,又把Java SE 5版本到Java SE 8版本中新出现的概念进行了补充和讲解。本书适合作为普通高等院校计算机科学与技术、软件工程及相关专业学生的课程教材,也适合作为其他专业的本科生、研究生及各级计算机专业技术人员的参考书。
關於作者:
姜志强,男,吉林大学计算机科学与技术学院副教授。主持的《软件工程教学系统》课程获得吉林省教育厅,教学研究成果二等奖;《管理信息系统》课程获得吉林省教育厅,教育技术成果优秀奖;《Java语言程序设计》课程获得吉林大学教学成果三等奖。
目錄 :
目录
第1章 Java语言基础 1
1.1 什么是Java语言 1
1.1.1 概述 1
1.1.2 历史与发展 1
1.1.3 Java语言的主要特点 3
1.1.4 Java Application与Java Applet程序 5
1.1.5 丰富的类库 5
1.1.6 Java语言与C语言和C 语言的比较 5
1.2 基本Java Application程序的结构 6
1.2.1 Java Application程序的基本结构和运行 6
1.2.2 用面向对象程序设计的方式实现Java语言程序 8
1.2.3 用图形界面的方式实现Java语言程序 9
1.3 几个重要的Java概念 10
1.3.1 Java运行时系统 10
1.3.2 Java虚拟机 10
1.3.3 自动垃圾收集机制 11
1.3.4 Java语言程序的代码安全机制 12
1.4 Java API文档的使用与学习 12
1.5 Java开发工具简介 12
1.5.1 JDK 13
1.5.2 NetBeans 13
1.5.3 Eclipse 13
1.5.4 JBuilder 13
1.5.5 JCreator 14
1.5.6 Symantec Cafe 14
1.5.7 IBM Visual Age for Java 14
1.5.8 Java WorkShop 14
本章知识点 15
习题1 15
实验1 16
第2章 Java语言结构化程序设计 17
2.1 标识符、关键字和数据类型 17
2.1.1 注释与程序段 17
2.1.2 字符集和标识符 18
2.1.3 Java语言的关键字 18
2.1.4 Java语言基本数据类型 19
2.1.5 引用数据类型 21
2.1.6 常量 21
2.1.7 变量的声明和赋值 22
2.2 运算符与表达式 23
2.2.1 运算符 23
2.2.2 Java语言运算符的优先级与结合性 26
2.2.3 表达式 26
2.3 语句与流程控制 27
2.3.1 结构化程序设计中的3种控制结构 27
2.3.2 选择语句 28
2.3.3 循环语句 33
2.3.4 break语句和continue语句 36
2.3.5 return语句 40
2.4 数组 40
2.4.1 数组的声明、创建、初始化与释放 41
2.4.2 多维数组 43
2.4.3 不等长多维数组 45
2.4.4 数组边界与数组元素的访问 45
2.5 结构化程序设计实例选讲 47
本章知识点 53
习题2 55
实验2 57
第3章 Java语言面向对象程序设计 58
3.1 面向对象程序设计 58
3.1.1 程序设计思想:结构化与面向对象 58
3.1.2 封闭:对象、类和消息 59
3.1.3 继承 59
3.1.4 多态 59
3.2 类与对象 59
3.2.1 类声明 59
3.2.2 变量成员 60
3.2.3 方法成员 61
3.2.4 声明的作用域 62
3.2.5 主类和主方法 62
3.2.6 构造方法 62
3.2.7 finalize方法 63
3.2.8 方法重载 63
3.2.9 对象 66
3.2.10 源程序文件的组织与存储 70
3.3 包 71
3.3.1 package语句 71
3.3.2 import语句 71
3.4 成员的访问 72
3.4.1 变量成员和方法成员的访问 72
3.4.2 形参和实参 73
3.4.3 this 74
3.4.4 访问权限 74
3.4.5 static属性:类变量成员和类方法成员 75
3.5 父类、子类和继承 76
3.5.1 创建子类 77
3.5.2 变量成员的隐藏和方法重写 77
3.5.3 super 78
3.5.4 final属性:final类和final方法 81
3.5.5 abstract属性:abstract类和abstract方法 81
3.5.6 类继承机制在程序设计中的作用 81
3.6 接口 81
3.6.1 接口的定义 82
3.6.2 接口体的定义 82
3.6.3 接口的继承 83
3.6.4 接口的实现 83
3.6.5 接口代码的存储 83
3.6.6 Java 8对接口定义的扩展修订 84
3.7 多态性的讨论 85
3.7.1 多态性的概念 85
3.7.2 继承层次结构中对象间的关系 85
3.8 内部类与嵌套类 90
3.8.1 内部类与嵌套类的概念 90
3.8.2 内部类与嵌套类的两种实现形式 90
3.9 Java类库中常用类的介绍 91
3.9.1 Object类 91
3.9.2 System类 92
3.9.3 Class类 92
3.9.4 Math类 92
3.9.5 基本数据类型封装类 92
3.9.6 数组操作工具类Arrays 94
3.9.7 String类和StringBuffer类 94
3.9.8 Calendar类和GregorianCalendar类 95
3.10 Java Application程序的完整结构 95
本章知识点 105
习题3 107
实验3 109
第4章 异常处理 110
4.1 异常与异常类 110
4.1.1 Java语言中的异常概念 110
4.1.2 Java类库中的异常类及其层次结构 112
4.2 异常处理的两种方式 113
4.2.1 捕获和处理异常 113
4.2.2 Java SE 7版本对于捕获异常的改进 115
4.2.3 抛出异常 116
4.2.4 创建自己的异常类 117
4.2.5 Throwable类中的异常信息获取方法 119
本章知识点 119
习题4 120
第5章 图形用户界面 121
5.1 Java语言图形用户界面概述 121
5.1.1 平台无关性图形用户界面组件的实现 121
5.1.2 GUI组件的类层次结构 122
5.1.3 图形用户界面的功能和构建 123
5.2 Java语言布局管理器 126
5.2.1 FlowLayout布局管理器 126
5.2.2 BorderLayout布局管理器 128
5.2.3 GridLayout布局管理器 130
5.2.4 CardLayout布局管理器 133
5.2.5 GridBagLayout布局管理器 136
5.2.6 javax.swing包中定义的布局管理器 140
5.2.7 无布局管理器 141
5.3 Java语言事件处理机制 141
5.3.1 Java语言事件处理机制概述 141
5.3.2 事件与事件类 142
5.3.3 事件监听器接口及适配器类 143
5.4 Swing组件的使用 158
5.4.1 Swing组件的分类 158
5.4.2 顶层容器 158
5.4.3 中间容器 159
5.4.4 显示提示组件 161
5.4.5 选择交互组件 163
5.4.6 按钮类组件 163
5.4.7 文本编辑类组件 168
5.4.8 菜单相关组件 168
5.4.9 显示效果修饰类 169
本章知识点 178
习题5 179
实验5 181
第6章 流和文件 182
6.1 流和输入输出相关类 182
6.1.1 流的概念 182
6.1.2 输入流和输出流类 182
6.2 数据流 183
6.2.1 标准输入流和输出流 183
6.2.2 基于字节的输入流和输出流 183
6.2.3 基于字符的输入流和输出流 185
6.2.4 基本数据类型的输入和输出 186
6.2.5 对象的输入和输出 187
6.2.6 字节数组的输入和输出 187
6.3 文件 187
6.3.1 顺序访问文件 188
6.3.2 随机访问文件 194
本章知识点 201
习题6 201
第7章 多线程 202
7.1 并发性、线程与多线程 202
7.1.1 并发性的概念 202
7.1.2 线程的状态与生命周期 202
7.2 获得线程体的两种方法 203
7.2.1 Thread类和Runnable接口 203
7.2.2 通过继承Thread类获得线程体 204
7.2.3 通过实现Runnable接口获得线程体 209
7.3 线程调度 212
7.3.1 线程的优先级 212
7.3.2 线程同步 213
本章知识点 217
习题7 218
第8章 数据结构和数据处理 219
8.1 基本数据结构的构造 219
8.1.1 自引用类 219
8.1.2 构造链表 220
8.1.3 构造栈 223
8.1.4 构造队列 225
8.1.5 构造二叉树 226
8.2 泛型 227
8.2.1 泛型的概念 227
8.2.2 泛型类 229
8.2.3 泛型接口 230
8.2.4 泛型方法 231
8.2.5 泛型通配符 231
8.2.6 泛型的上下边界 234
8.3 枚举 234
8.3.1 枚举的定义 234
8.3.2 Enum<E>类 235
8.3.3 枚举的使用 235
8.4 容器集合类 237
8.4.1 For-each遍历与迭代器 237
8.4.2 迭代器 238
8.4.3 容器 239
8.4.4 列表 241
8.4.5 集合 244
8.4.6 队列 246
8.4.7 映射 247
8.5 注解 249
8.5.1 什么是注解 249
8.5.2 类库中的注解 250
8.5.3 定义注解的基本语法 250
8.5.4 元注解 251
本章知识点 252
习题8 253
第9章 Java Applet程序设计 254
9.1 HTML与WWW 254
9.1.1 HTML 254
9.1.2 WWW 257
9.1.3 URI与URL 258
9.1.4 XML 259
9.2 Java Applet基本概念 259
9.2.1 什么是Java Applet 259
9.2.2 Java Applet程序的运行环境和运行方式 260
9.2.3 Java Applet程序的执行步骤和生命周期 260
9.2.4 Java Applet程序的安全机制 260
9.3 Java Applet程序的编写和运行 261
9.3.1 Java Applet程序的主要行为 261
9.3.2 Java Applet程序的编写 262
9.3.3 Java Applet程序的运行 266
9.3.4 Applet类与JApplet类 267
9.4 Java Applet程序的多媒体设计 268
9.4.1 图形绘制 269
9.4.2 字符串绘制 269
9.4.3 图像绘制 270
9.4.4 动画绘制 272
9.4.5 声音播放 275
9.5 Java Applet程序的交互功能与通信功能 279
9.5.1 Java Applet程序的交互功能 279
9.5.2 读取HTML参数 279
9.5.3 Java Applet程序与其他程序的通信 281
9.5.4 Java Application与Java Applet程序的简要比较 281
本章知识点 281
习题9 282
实验9 283
第10章 网络与通信程序设计 284
10.1 IP地址与网络指针 284
10.1.1 InetAddress类 284
10.1.2 URL类 287
10.2 Internet通信 290
10.2.1 Socket通信机制 290
10.2.2 Datagram通信机制 295
本章知识点 298
习题10 298
第11章 JDBC技术 299
11.1 关系型数据库的驱动与连接 299
11.1.1 JDBC技术概述 299
11.1.2 JDBC的驱动管理器 300
11.1.3 JDBC驱动程序的类型 300
11.2 使用SQL指令操作数据库 301
11.2.1 载入JDBC驱动程序 301
11.2.2 连接到DBMS 301
11.2.3 创建并执行语句 302
11.2.4 处理DBMS返回的数据 303
11.2.5 终止与DBMS的连接 304
11.2.6 一个完整的实例 305
內容試閱 :
前言
本书是2007年出版的普通高等教育十一五国家级规划教材《Java语言程序设计》的第2版。
自1995年Java语言发布至今已经有二十几年了。随着时光的流逝,Java语言和Java技术也日臻成熟。近十几年来,整个IT行业的发展方兴未艾,电子商务软件、社交软件层出不穷,整个计算机行业正在发生着翻天覆地的变化,带动着全社会向前进步。与此同时,软件业内部也是风起云涌,Java语言和Java技术经历了很多变故。Oracle公司先是整体收购了Sun公司及Java技术,后又策划将Java技术整体转让给Eclipse基金会,使得曾经风靡天下的Java技术似乎瞬间变成了无人问津的弃儿。而Python随着人工智能的风靡出尽风头;Perl、Ruby、R等语言也时不时地显露一下。尽管如此,Java技术依然不失其业界统治者的地位,依然是最为重要的软件开发工具,依然是信息行业占有率最高的开发设计平台。可以明确地说,到目前为止,尚未出现一个可以替代Java语言的垄断地位的新的开发语言。
在修订过程中,本书基本遵循如下的指导思想:整体仍以原书的框架为主,既尽量保持了原有的介绍流程和思路,又对新内容进行了适当的补充。在各个章节中,增加了对Java SE新版本中所增添的新语法内容的介绍,具体到每一个新的知识点,都明确标注了其出现版本,以利于读者准确区分。由于原书(第1版)的出版时间距今已经比较久远,原书中有些对Java语言的介绍内容,在今天看来似乎有些过时,不过为了保持原书的风格,尽量予以保留。在内容安排上,本书进一步突出了对于面向对象程序设计思想的贯彻,表现为在例题的讲解上和章节的调整上,尽量突出对象先行的思想。本书在第3章中增加了多态性的讨论一节,还增加了数据结构和数据处理一章,介绍了Java SE 5版本开始出现的数据容纳类等新概念。考虑到目前Java Applet程序的使用已经日渐式微,所以把原书的关于Internet和HTML的介绍与Java Applet程序设计的内容合并为第10章。各章内容在修改时都做了进一步的充实。在各个章节的相应位置,给出了编程技巧提示和编程常见错误提示,其中叙述的都是作者多年来在教学实践过程中发现和积累的,初学者比较容易犯的一些典型错误和容易忽略的编程技巧,以期通过这种方式提醒读者。
本书的建议理论授课学时为32~40学时,建议实践教学学时为16学时,任课教师可以根据教学侧重点进行增减。在几个主要章节的后面,本书都提供了一定数量的习题和实验题,以供教师在教学过程中使用。
作者始终假定本书的读者已经具备了C语言和C语言方面的知识,所以在介绍Java语言语法时都是与C语言和C语言的对应知识点进行对比介绍的,对于其中相似的部分没有进行过多介绍,主要介绍了它们之间的差异。如果选用本书作为教学用书,建议教师先安排C语言和C语言的学习。
另一个与知识关联的方面是Java语言与软件工程之间的关系。在Java语言中,存在多处体现软件工程理论和设计概念的地方,如设计模式思想、代码复用技术、建模分析技术等。针对这一系列知识点,本书采取涉及但不过多讲授的手法处理,对所涉及的知识点都在书中提一下,但不做过多讲解。作者始终认为,讲语言的教材还是要把语言的语法作为教学的重点和核心。
在本书即将付梓之际,作者要感谢吉林大学对本书的支持。同时很高兴能够与电子工业出版社的编辑们再次合作,他们高质量的工作和严肃认真的精神是我在与他们合作过程中最大的享受。期待随着这本书的付梓,在与他们的合作中,获得更多的乐趣。
本书的绝大部分文稿修改工作都是在抗击新冠病毒期间完成的。作者白天网上上课,晚间屏前写作,终于按时完成了这部书稿。或许若干年之后,再谈起这段生活,还会拿起这本书翻一翻吧!就让这本书作为这段非常时期的一个纪念吧!
由于时间和作者水平所限,对于新技术规范的理解和消化也还不够透彻,书中难免挂一漏万,恳请专家和读者批评指正。
作者
2020年12月于吉林大学寓所