Java编程详解(微课版)

图书作者:华清远见嵌入式学院 季久峰 刘洪涛 丛书名称: 工业和信息化“十三五”人才培养规划教材 出版日期: 2019年4月

编辑推荐理由

推荐评分:5.0分

多年嵌入式人才培养及项目研发经验总结

数百家企业嵌入式研发岗位人才需求汇总

数十所嵌入式专业大学院校教学现状调研

侧重实践及案例分析并辅以代码加以讲解

图书简介

本书主要介绍了Java语言的编程技术。全书共15章,介绍了Java语言的由来、面向对象程序的初步设计、标识符、关键字、数据类型、运算符、表达式、流程控制、数组、面向对象编程进阶的知识、高级类的特性、Java基本类库、Java异常处理、Java泛型、集合、Java线程编程、Java I/O系统、网络编程及Android下的Java高效编程等。本书内容由浅入深,通俗易懂。
  • 每章都有课后练习题,帮助读者巩固所学知识。

图书目录

  • ※第1章 Java语言的由来 1

  • 1.1 什么是Java语言 2
  • 1.2 Java语言的诞生 2
  • 1.3 Java的发展经历 3
  • 1.4 Java的现状 5
  • 1.5 Java虚拟机 5
  • 1.5.1 Java虚拟机的起源与构造 5
  • 1.5.2 虚拟机的优化 6
  • 1.5.3 现实生活中的虚拟机 7
  • 1.6 Java开发环境搭建 7
  • 1.6.1 安装JDK和配置Java开发环境 8
  • 1.6.2 Eclipse的安装 8
  • 1.7 本章小结 8
  • 课后练习题 9
  • ※第2章 面向对象程序初步设计 10

  • 2.1 面向对象的概念 11
  • 2.1.1 从结构化程序设计到面向对象程序设计 11
  • 2.1.2 面向对象的特征 11
  • 2.2 面向对象程序设计 12
  • 2.2.1 知识准备:面向对象编程术语 12
  • 2.2.2 知识准备:对象 12
  • 2.2.3 知识准备:类 13
  • 2.2.4 知识准备:类的声明 13
  • 2.2.5 知识准备:属性的声明 15
  • 2.2.6 知识准备:方法的声明 15
  • 2.2.7 知识准备:构造器(构造方法) 16
  • 2.2.8 知识准备:对象的创建和使用 17
  • 2.2.9 任务一:创建并引用一个对象 17
  • 2.2.10 技能拓展任务:带参数构造器的声明与使用 18
  • 2.3 信息的封装和隐藏 19
  • 2.3.1 知识准备:信息的封装 19
  • 2.3.2 知识准备:信息的隐藏 19
  • 2.4 Java源文件结构 20
  • 2.4.1 知识准备:package语句 20
  • 2.4.2 知识准备:import语句 22
  • 2.4.3 任务二:package语句和import语句实例 22
  • 2.5 JDK中常用的包 23
  • 2.6 本章小结 24
  • 课后练习题 24
  • ※第3章 标识符、关键字与数据类型 26

  • 3.1 Java注释 27
  • 3.1.1 知识准备:Java注释使用规则 27
  • 3.1.2 知识准备:利用javadoc生成API文档 27
  • 3.1.3 任务一:使用javadoc生成API文档 30
  • 3.2 分隔符和标识符 31
  • 3.2.1 知识准备:空白分隔符 31
  • 3.2.2 知识准备:普通分隔符 32
  • 3.2.3 知识准备:Java语言标识符的组成规则 32
  • 3.2.4 任务二:综合使用Java分隔符和标识符 33
  • 3.3 Java关键字/保留字 33
  • 3.3.1 知识准备:Java关键字使用规范 33
  • 3.3.2 知识准备:重点关键字解析 34
  • 3.4 数据类型 34
  • 3.4.1 知识准备:简单类型 34
  • 3.4.2 知识准备:非布尔型简单数据类型之间的转换 37
  • 3.4.3 任务三:简单数据类型转换实例 38
  • 3.4.4 知识准备:引用类型 38
  • 3.4.5 任务四:引用类型程序实例 39
  • 3.4.6 技能拓展任务:分析对象的构造和初始化 40
  • 3.5 变量及其初始化 41
  • 3.5.1 知识准备:局部变量 41
  • 3.5.2 知识准备:成员变量 42
  • 3.5.3 知识准备:变量初始化 43
  • 3.5.4 知识准备:局部变量的初始化 43
  • 3.5.5 知识准备:成员变量的初始化 44
  • 3.5.6 任务五:成员变量的3种初始化方式 44
  • 3.6 值传递和引用传递 45
  • 3.6.1 知识准备:Java中的值传递 45
  • 3.6.2 知识准备:Java中的引用传递 46
  • 3.7 Java编码规范 46
  • 3.7.1 知识准备:命名规范 47
  • 3.7.2 知识准备:代码编写格式规范 48
  • 3.8 本章小结 48
  • 课后练习题 48
  • ※第4章 运算符、表达式与流程控制 50

  • 4.1 运算符 51
  • 4.1.1 知识准备:算术运算符 51
  • 4.1.2 知识准备:位运算符 52
  • 4.1.3 知识准备:关系运算符和逻辑运算符 53
  • 4.1.4 任务一:短路布尔运算 54
  • 4.1.5 知识准备:三元运算符 56
  • 4.1.6 知识准备:递增/递减运算符 56
  • 4.1.7 知识准备:赋值运算符 56
  • 4.1.8 任务二:简单数据类型和引用数据类型的赋值操作 58
  • 4.1.9 知识准备:运算符的优先顺序 59
  • 4.1.10 技能拓展任务:字符串连接运算符 60
  • 4.2 表达式 61
  • 4.2.1 知识准备:表达式中运算符的结合性 61
  • 4.2.2 知识准备:表达式中运算符的优先顺序 61
  • 4.3 分支语句 62
  • 4.3.1 知识准备:if语句 62
  • 4.3.2 任务三:if语句的用法 63
  • 4.3.3 知识准备:switch语句 64
  • 4.3.4 任务四:switch语句实例 64
  • 4.4 循环语句 66
  • 4.4.1 知识准备:for语句 66
  • 4.4.2 任务五:for循环语句实例 67
  • 4.4.3 知识准备:while语句 68
  • 4.4.4 知识准备:do…while语句 69
  • 4.4.5 知识准备:break及continue语句 69
  • 4.4.6 技能拓展任务:continue结合标签的使用 71
  • 4.5 本章小结 72
  • 课后练习题 72
  • ※第5章 数组 74

  • 5.1 数组的基本概念 75
  • 5.2 一维数组 75
  • 5.2.1 知识准备:一维数组的声明 75
  • 5.2.2 知识准备:一维数组的创建 75
  • 5.2.3 任务一:一维数组的声明与创建实例 76
  • 5.2.4 知识准备:一维数组的初始化 76
  • 5.2.5 知识准备:引用数组元素 79
  • 5.2.6 任务二:引用数组实例——对数组排序 79
  • 5.2.7 知识准备:简单数据类型数组的内存空间 80
  • 5.2.8 技能拓展任务:数组复制 81
  • 5.3 数据结构及数组应用 83
  • 5.3.1 知识准备:堆栈 83
  • 5.3.2 任务三:使用数组实现堆栈 83
  • 5.3.3 知识准备:队列 85
  • 5.3.4 任务四:使用数组实现队列 85
  • 5.3.5 知识准备:排序算法 87
  • 5.3.6 技能拓展任务:排序算法实例 90
  • 5.4 多维数组 91
  • 5.4.1 知识准备:多维数组的声明 91
  • 5.4.2 知识准备:多维数组的创建 91
  • 5.4.3 知识准备:多维数组的初始化 91
  • 5.5 本章小结 92
  • 课后练习题 92
  • ※第6章 面向对象编程进阶 94

  • 6.1 继承 95
  • 6.1.1 类的继承 95
  • 6.1.2 任务一:利用继承实现通讯录实例 97
  • 6.1.3 访问控制 99
  • 6.2 super关键字 100
  • 6.2.1 调用父类构造器 100
  • 6.2.2 调用父类的属性和方法 101
  • 6.2.3 任务二:super关键字的使用 101
  • 6.3 this关键字 103
  • 6.3.1 知识准备:使用this关键字获得当前对象的引用 103
  • 6.3.2 知识准备:在构造器中调用构造器 104
  • 6.3.3 知识准备:static的含义 105
  • 6.4 方法的覆盖与重载 106
  • 6.4.1 知识准备:方法的覆盖 106
  • 6.4.2 知识准备:方法重载 108
  • 6.4.3 知识准备:构造器重载 108
  • 6.5 通常需要覆盖的几种方法 109
  • 6.5.1 知识准备:对象的toString()方法 109
  • 6.5.2 任务三:覆盖toString()方法 110
  • 6.5.3 知识准备:==和equals() 111
  • 6.6 对象的初始化 114
  • 6.7 封装类 118
  • 6.7.1 知识准备:Java中的封装类 118
  • 6.7.2 知识准备:自动拆箱和装箱 119
  • 6.7.3 知识拓展:在Java中实现小数的精确计算 121
  • 6.8 本章小结 122
  • 课后练习题 122
  • ※第7章 高级类特性 124

  • 7.1 static关键字 125
  • 7.1.1 static 125
  • 7.1.2 static变量的引用方法 125
  • 7.2 final关键字 126
  • 7.2.1 final数据 126
  • 7.2.2 final方法 126
  • 7.2.3 final类 127
  • 7.3 抽象类 127
  • 7.3.1 abstract概述 127
  • 7.3.2 abstract class 128
  • 7.3.3 模板设计模式 128
  • 7.4 接口 129
  • 7.4.1 接口的定义 129
  • 7.4.2 接口的使用 129
  • 7.4.3 接口的扩展 129
  • 7.4.4 抽象类和接口 130
  • 7.5 多态 131
  • 7.5.1 多态概述 131
  • 7.5.2 instanceof概述 135
  • 7.5.3 应用类型数据转换 136
  • 7.6 内部类 137
  • 7.6.1 内部类定义 137
  • 7.6.2 局部内部类 137
  • 7.6.3 匿名内部类 138
  • 7.6.4 内部类的特性 139
  • 7.7 修饰符的适用范围 139
  • 7.7.1 类的适用范围 139
  • 7.7.2 变量的适用范围 139
  • 7.7.3 方法的适用范围 140
  • 7.7.4 接口的适用范围 140
  • 7.8 本章小结 140
  • 课后练习题 141
  • ※第8章 Java基本类库 142

  • 8.1 系统输入 143
  • 8.1.1 运行Java程序的参数 143
  • 8.1.2 使用Scanner获取键盘输入 143
  • 8.2 Lang包下的类 144
  • 8.2.1 System类 144
  • 8.2.2 Runtime类 145
  • 8.2.3 Object类 145
  • 8.2.4 String类、StringBuffer类、StringBuilder类和Math类 146
  • 8.3 日期时间类 149
  • 8.3.1 Date类和Calendar类 149
  • 8.3.2 TimeZone类 150
  • 8.4 本章小结 151
  • 课后练习题 151
  • ※第9章 Java异常处理 152

  • 9.1 异常概述 153
  • 9.1.1 异常的概念 153
  • 9.1.2 Error/Exception层次关系 153
  • 9.1.3 数学计算异常示例 153
  • 9.1.4 访问空对象引起的异常示例 154
  • 9.2 Java中异常的处理 155
  • 9.2.1 常见异常 155
  • 9.2.2 Java中的异常处理机制 155
  • 9.2.3 通过try…catch…finally语句来处理异常 155
  • 9.2.4 将异常抛出 158
  • 9.2.5 捕获异常和抛出异常结合使用 161
  • 9.2.6 进行方法覆盖时对异常的处理 161
  • 9.3 自定义异常 162
  • 9.3.1 知识准备:自定义异常概念 162
  • 9.3.2 知识拓展:通过printStackTrace()追踪异常源头 163
  • 9.4 本章小结 164
  • 课后练习题 164
  • ※第10章 Java泛型 166

  • 10.1 泛型入门 167
  • 10.2 泛型类 168
  • 10.3 泛型方法 170
  • 10.3.1 定义泛型方法 170
  • 10.3.2 静态方法使用泛型 171
  • 10.4 泛型接口 172
  • 10.4.1 使用泛型接口 172
  • 10.4.2 继承泛型接口 172
  • 10.5 泛型的高级特性 173
  • 10.5.1 泛型的通配符 173
  • 10.5.2 泛型限定——上限 174
  • 10.5.3 泛型限定——下限 175
  • 10.6 本章小结 175
  • 课后练习题 176
  • ※第11章 集合 177

  • 11.1 集合概述 178
  • 11.2 集合的层次结构 178
  • 11.3 Collection接口 179
  • 11.3.1 Collection接口介绍 179
  • 11.3.2 关于Collection接口的子接口与类 179
  • 11.3.3 实现集合的增删改查 179
  • 11.3.4 使用foreach循环进行遍历 180
  • 11.3.5 使用iterator接口进行遍历 181
  • 11.4 Set集合 183
  • 11.4.1 HashSet类 183
  • 11.4.2 TreeSet类 184
  • 11.4.3 LinkedHashSet类 185
  • 11.5 List集合 185
  • 11.5.1 ArrayList类 186
  • 11.5.2 LinkedList类 187
  • 11.5.3 Vector类 188
  • 11.5.4 Vector类与ArrayList类的区别 188
  • 11.6 Map集合 188
  • 11.6.1 HashMap类 189
  • 11.6.2 Hashtable类 189
  • 11.6.3 LinkedHashMap类 189
  • 11.6.4 Map集合的遍历 190
  • 11.7 本章小结 190
  • 课后练习题 191
  • ※第12章 Java线程编程 192

  • 12.1 线程概述 193
  • 12.2 Java线程模型 194
  • 12.3 创建线程 194
  • 12.3.1 知识准备:继承Thread类创建线程 194
  • 12.3.2 知识准备:实现Runnable接口创建线程 195
  • 12.3.3 知识准备:后台线程概念 196
  • 12.3.4 任务一:继承Thread类创建线程实例 196
  • 12.3.5 任务二:实现Runnable接口方式创建线程 197
  • 12.3.6 技能拓展任务:实现守护线程实例 198
  • 12.4 线程的运行机制 198
  • 12.4.1 知识准备:线程的基本状态 198
  • 12.4.2 知识准备:线程的结束方式 199
  • 12.4.3 任务三:线程的基本状态实例 200
  • 12.5 线程控制 201
  • 12.5.1 知识准备:测试线程 201
  • 12.5.2 知识准备:中断线程 201
  • 12.5.3 知识准备:设置线程优先级 202
  • 12.5.4 知识准备:Thread.join()线程等待 202
  • 12.5.5 任务四:设置线程优先级实例 203
  • 12.5.6 技能拓展任务:线程的join()方法实现实例 204
  • 12.6 多线程编程 207
  • 12.6.1 知识准备:多线程概述 207
  • 12.6.2 知识准备:多线程共享数据 209
  • 12.6.3 知识准备:线程间通信 214
  • 12.6.4 知识准备:实现线程间通信 214
  • 12.6.5 知识拓展:定时器 217
  • 12.7 多线程编程的一般规则 218
  • 12.8 java.util.concurrent中的同步API 219
  • 12.8.1 知识准备:线程池 219
  • 12.8.2 知识准备:锁 221
  • 12.8.3 任务五:线程池实例 221
  • 12.8.4 知识准备:使用锁实例 223
  • 12.8.5 知识准备:使用读/写锁 228
  • 12.8.6 技能拓展任务:使用Condition来实现线程间的通信 231
  • 12.9 本章小结 233
  • 课后练习题 234
  • ※第13章 Java I/O系统 235

  • 13.1 File类 236
  • 13.1.1 目录列表类 236
  • 13.1.2 目录实用工具 237
  • 13.1.3 目录的检查及创建 237
  • 13.2 输入和输出 238
  • 13.2.1 InputStream类型 239
  • 13.2.2 OutputStream类型 240
  • 13.3 Reader和Writer 241
  • 13.3.1 数据的来源和去处 241
  • 13.3.2 更改流的行为 242
  • 13.3.3 未发生变化的类 242
  • 13.4 RandomAccessFile 243
  • 13.5 I/O流的典型使用方式 243
  • 13.5.1 缓冲输入文件 243
  • 13.5.2 从内存中输入 244
  • 13.5.3 格式化的内存输入 244
  • 13.5.4 基本的文件输入 245
  • 13.5.5 读/写随机访问文件 245
  • 13.5.6 文件的复制 246
  • 13.6 本章小结 248
  • 课后练习题 248
  • ※第14章 网络编程 250

  • 14.1 网络基础 251
  • 14.1.1 网络类型 251
  • 14.1.2 网络工作模式 251
  • 14.1.3 网络通信结构 251
  • 14.2 网络通信协议 252
  • 14.2.1 知识准备:TCP 252
  • 14.2.2 知识准备:IP 252
  • 14.2.3 知识准备:TCP/IP 253
  • 14.2.4 知识准备:IP地址 253
  • 14.2.5 端口 254
  • 14.2.6 任务一:通过Java编程获得IP地址 255
  • 14.3 Socket套接字 256
  • 14.4 Java Socket编程 257
  • 14.4.1 ServerSocket 257
  • 14.4.2 Socket类 257
  • 14.4.3 Socket通信过程 258
  • 14.4.4 任务二:Socket通信实例 258
  • 14.5 Java URL类 260
  • 14.5.1 知识准备:URL概念 260
  • 14.5.2 知识准备:Java中的URL类 260
  • 14.5.3 知识拓展:URL应用实例 261
  • 14.6 本章小结 263
  • 课后练习题 264
  • ※第15章 Android下的Java高效编程 265

  • 15.1 Android下Java编程性能优化介绍 266
  • 15.2 提升性能的优化方法 266
  • 15.2.1 使用本地方法 266
  • 15.2.2 使用虚方法优于使用接口 267
  • 15.2.3 使用静态代替虚拟 267
  • 15.2.4 缓冲对象属性调用 267
  • 15.2.5 声明final常量 268
  • 15.2.6 考虑用包访问权限替代私有访问权限 268
  • 15.2.7 使用改进的for循环语法 269
  • 15.3 编程中注意避免的事项 270
  • 15.3.1 避免创建不必要的对象 270
  • 15.3.2 避免使用内部的Getters/Setters 270
  • 15.3.3 避免使用枚举类型 270
  • 15.3.4 避免使用浮点类型 271
  • 15.4 标准操作的时间比较 271
  • 15.5 本章小结 272
  • 课后练习题 272