Java编程从入门到精通

立足新工科和工程教育,从实践者视角组织知识点
分享 推荐 0 收藏 13 阅读 988
胡平 (作者)

关于本书的内容有任何问题,请联系 许金霞

立足新工科和工程教育,从实践者视角组织知识点
基于JDK 8,含150个示例程序、16 个案例实践、14 次习题
详述编程规范与最佳实践案例、附赠Java全栈工程师学习路线图
提供丰富的教辅资源及全部案例源码

内容摘要

本书立足于新工科和工程教育,从工程应用和实践者的视角,全面系统地介绍了目前在工业界中使用最为广泛的JDK 8的全部核心知识。全书共14章,主要内容包括Java概述,基本类型与运算符,程序流程控制,数组,类与对象,抽象类、接口与嵌套类,GUI编程,Swing高级组件,异常与处理,I / O流与文件,多线程与并发,容器框架与泛型,字符串与正则表达式,反射与注解。
本书可作为普通高等院校、高职院校计算机及相关专业的教材,也可作为Java爱好者、程序开发人员的参考书。

目录

第1章 Java概述 1
1.1 Java语言的诞生及发展 1
1.1.1 Java语言的诞生 1
1.1.2 Java语言的发展历程 1
1.2 Java的特点及地位 2
1.2.1 Java语言的特点 3
1.2.2 Java在主流编程语言中的地位 4
1.3 Java平台及版本 5
1.3.1 JRE组成 6
1.3.2 版本划分 6
1.3.3 Java程序的种类 7
1.4 JDK安装及环境配置 8
1.4.1 本书为何基于JDK 8 8
1.4.2 JDK下载与安装 9
1.4.3 JDK的目录结构 11
1.4.4 配置环境变量 11
1.5 第一个Java程序 14
1.5.1 编辑源文件 14
1.5.2 编译源文件 15
1.5.3 运行类文件 16
1.6 程序错误与调试 17
1.6.1 语法错误 17
1.6.2 运行时错误 18
1.6.3 逻辑错误 18
1.6.4 程序调试 18
习题 19
第2章 基本类型与运算符 20
2.1 标识符 21
2.1.1 关键字和保留字 21
2.1.2 用户标识符 22
2.1.3 命名惯例和约定 22
2.2 变量与常量 23
2.2.1 变量 23
2.2.2 常量 24
2.3 整型 24
2.3.1 整型常量 25
2.3.2 整型变量 25
2.4 浮点型 26
2.4.1 浮点型常量 26
2.4.2 浮点型变量 27
2.5 字符型 28
2.5.1 Unicode概述 28
2.5.2 字符型常量 29
2.5.3 字符型变量 31
2.6 布尔型 31
2.7 类型转换 31
2.7.1 自动转换 32
2.7.2 强制转换 32
2.8 基本类型的包装类 33
2.8.1 包装类 33
2.8.2 包装类的主要方法 34
2.8.3 自动装箱和拆箱 35
2.9 运算符与表达式 35
2.9.1 赋值运算符 37
2.9.2 算术运算符 37
2.9.3 关系运算符 40
2.9.4 条件运算符 40
2.9.5 逻辑运算符 41
2.9.6 位运算符 42
2.9.7 表达式 43
习题 44
第3章 程序流程控制 46
3.1 语句及语句块 46
3.2 分支结构 47
3.2.1 if语句 47
3.2.2 if-else语句 48
3.2.3 if及if-else的嵌套 49
3.2.4 switch语句 50
3.3 循环结构 53
3.3.1 while语句 53
3.3.2 do-while语句 55
3.3.3 for语句 55
3.3.4 break与continue语句 57
3.3.5 循环的嵌套 58
3.3.6 带标号的break与continue语句 61
3.4 案例实践1:简单人机交互 62
习题 63
第4章 数组 65
4.1 一维数组 65
4.1.1 声明一维数组 65
4.1.2 创建一维数组 66
4.1.3 访问一维数组 67
4.1.4 增强型for循环 68
4.1.5 命令行参数 69
4.2 案例实践2:约瑟夫环问题 70
4.3 二维数组 71
4.3.1 声明和创建二维数组 71
4.3.2 二维数组的存储结构 72
4.3.3 访问二维数组 72
4.4 案例实践3:K-Means聚类 74
习题 77
第5章 类与对象 78
5.1 面向对象概述 78
5.1.1 产生背景 78
5.1.2 相关概念 79
5.1.3 基本特性 80
5.2 类 82
5.2.1 类的定义格式 82
5.2.2 变量的作用域 83
5.3 方法 84
5.3.1 方法定义 84
5.3.2 return语句 85
5.3.3 方法调用 86
5.3.4 方法重载 87
5.3.5 构造方法 88
5.3.6 this关键字 91
5.3.7 变长参数方法 92
5.3.8 native方法 93
5.4 包 96
5.4.1 包的概念 96
5.4.2 package语句 96
5.4.3 import语句 97
5.5 常用修饰符 98
5.5.1 访问权限修饰符 98
5.5.2 final和static 99
5.6 案例实践4:单例模式 102
5.7 对象 103
5.7.1 对象的初始化 103
5.7.2 对象的引用 104
5.7.3 栈和堆 104
5.7.4 参数传递 105
5.7.5 垃圾回收 106
5.8 类的继承 108
5.8.1 继承的语法与图形化表示 109
5.8.2 super关键字 110
5.8.3 构造方法的调用顺序 111
5.8.4 方法重写与运行时多态 112
5.8.5 对象造型与instanceof 113
5.8.6 根类Object 114
5.8.7 对象的等价性 115
5.9 枚举 117
5.9.1 定义枚举类型 117
5.9.2 带构造方法的枚举 118
5.10 案例实践5:简单工厂模式 119
习题 121
第6章 抽象类、接口与嵌套类 124
6.1 抽象类 124
6.1.1 抽象方法 124
6.1.2 抽象类 125
6.2 接口 126
6.2.1 声明接口 126
6.2.2 接口继承接口 126
6.2.3 类实现接口 127
6.2.4 含默认方法的接口 130
6.3 抽象类与接口的比较 131
6.3.1 从语法层面 131
6.3.2 从设计层面 132
6.4 案例实践6:适配器模式 133
6.5 嵌套类 135
6.5.1 静态嵌套类 135
6.5.2 内部类 136
6.5.3 局部内部类 137
6.5.4 匿名内部类 138
6.6 函数式接口与Lambda表达式 140
6.6.1 函数式接口 140
6.6.2 Lambda表达式 142
6.6.3 方法引用 144
习题 146
第7章 GUI编程 149
7.1 概述 149
7.1.1 AWT 149
7.1.2 Swing 150
7.1.3 SWT 151
7.2 Swing库的架构 152
7.2.1 组件类的继承关系 152
7.2.2 java.awt.Component 153
7.2.3 java.awt.Container 154
7.2.4 java.awt.Window 154
7.2.5 java.awt.Frame 155
7.2.6 JComponent 155
7.3 容器组件 156
7.3.1 窗口:JFrame 156
7.3.2 面板:JPanel 157
7.3.3 可滚动面板:JScrollPane 158
7.3.4 分割面板:JSplitPane 160
7.3.5 分页面板:JTabbedPane 161
7.4 标签和图片 163
7.4.1 标签:JLabel 163
7.4.2 图标/图片:Icon/ImageIcon 164
7.5 按钮和工具提示 166
7.5.1 常规按钮:JButton 166
7.5.2 开关按钮:JToggleButton 168
7.5.3 单选按钮——JRadioButton 169
7.5.4 复选按钮:JCheckBox 170
7.6 文本组件 171
7.6.1 文本框:JTextField 171
7.6.2 密码框:JPasswordField 173
7.6.3 文本区:JTextArea 174
7.7 可调节组件 175
7.7.1 进度条:JProgressBar 175
7.7.2 滚动条:JScrollBar 176
7.7.3 滑块条:JSlider 177
7.8 菜单和工具栏 179
7.8.1 菜单相关组件:JMenuBar/JMenu/
JMenuItem 179
7.8.2 弹出菜单:JPopupMenu 181
7.8.3 工具栏:JToolBar 182
7.9 颜色和字体 183
7.9.1 颜色:java.awt.Color 183
7.9.2 字体:java.awt.Font 184
7.10 布局管理 186
7.10.1 布局管理器:LayoutManager 186
7.10.2 流式布局:FlowLayout 186
7.10.3 边界布局:BorderLayout 187
7.10.4 网格布局:GridLayout 189
7.10.5 网格包布局:GridBagLayout 189
7.10.6 空布局:绝对定位 192
7.10.7 可视化GUI设计器 192
7.11 案例实践7:仿QQ聊天窗口 193
7.12 事件处理 196
7.12.1 事件处理模型 196
7.12.2 事件监听器类的编写方式 197
7.12.3 常用事件类 201
7.12.4 常用事件监听器接口 201
习题 203
第8章 Swing高级组件 204
8.1 对话框 204
8.1.1 基本对话框:JDialog 204
8.1.2 文件选择器:JFileChooser 206
8.1.3 选项面板:JOptionPane 207
8.2 列表和下拉列表 210
8.2.1 MVC模式 210
8.2.2 列表:JList 210
8.2.3 下拉列表:JComboBox 213
8.3 表格和树 215
8.3.1 表格:JTable 215
8.3.2 树:JTree 220
8.4 其他高级组件 225
8.4.1 微调按钮:JSpinner 225
8.4.2 内部窗口:JInternalFrame 227
习题 228
第9章 异常与处理 229
9.1 异常的概念和分类 229
9.1.1 异常的概念 229
9.1.2 异常的分类 230
9.2 异常处理及语法 232
9.2.1 异常的产生及处理 232
9.2.2 throw语句及throws子句 233
9.2.3 try-catch 235
9.2.4 finally 237
9.2.5 try-catch-finally的嵌套 239
9.2.6 try-with-resources 240
9.3 异常类的主要方法 243
9.3.1 Throwable类的方法 243
9.3.2 Exception类的构造方法 243
9.4 自定义异常类 244
9.5 案例实践8:用户登录 246
习题 247
第10章 I/O流与文件 248
10.1 概述 248
10.1.1 I/O与流 248
10.1.2 流的分类 248
10.2 字节流 249
10.2.1 字节输入流:InputStream 249
10.2.2 字节输出流:OutputStream 250
10.3 字符流 250
10.3.1 字符输入流:Reader 251
10.3.2 字符输出流:Writer 251
10.4 文件流 252
10.4.1 File类 252
10.4.2 字节文件流:FileInputStream和FileOutputStream 254
10.4.3 字符文件流:FileReader和
FileWriter 254
10.5 案例实践9:文件复制器 255
10.6 缓冲流 257
10.6.1 字节缓冲流:BufferedInputStream
和BufferedOutputStream 257
10.6.2 字符缓冲流:BufferedReader和
BufferedWriter 259
10.7 转换流 260
10.8 打印流 262
10.9 数据流 264
10.10 对象流 267
10.11 案例实践10:程序快照机 268
10.12 其他常用I/O类 269
10.12.1 读入器:Scanner 269
10.12.2 控制台:Console 271
习题 273
第11章 多线程与并发 274
11.1 概述 274
11.1.1 程序、进程与线程 274
11.1.2 多任务与多线程 275
11.1.3 线程状态及调度 275
11.1.4 Thread类与Runnable接口 276
11.2 线程状态控制 278
11.2.1 start方法 278
11.2.2 sleep方法 278
11.2.3 join方法 279
11.2.4 yield方法 280
11.2.5 interrupt方法 281
11.3 案例实践11:数字秒表 282
11.4 并发控制 284
11.4.1 同步与异步 284
11.4.2 synchronized关键字 285
11.4.3 wait、notify和notifyAll方法 287
11.5 案例实践12:生产者与消费者
问题 287
习题 289
第12章 容器框架与泛型 291
12.1 核心接口 291
12.1.1 容器根接口:Collection 292
12.1.2 集合接口:Set 292
12.1.3 列表接口:List 293
12.1.4 队列接口:Queue 293
12.1.5 映射接口:Map 294
12.1.6 遍历容器 295
12.2 常用集合类 297
12.2.1 哈希集合:HashSet和
LinkedHashSet 297
12.2.2 树形集合:TreeSet 299
12.3 案例实践13:产品排序 300
12.4 常用列表类 302
12.4.1 顺序列表:ArrayList 302
12.4.2 链式列表:LinkedList 304
12.5 常用映射类 305
12.5.1 哈希映射:HashMap和
LinkedHashMap 305
12.5.2 树形映射:TreeMap 307
12.6 遗留容器类 308
12.6.1 向量:Vector 308
12.6.2 哈希表:Hashtable 309
12.7 容器工具类 309
12.7.1 Collections 310
12.7.2 Arrays 310
12.8 泛型 311
12.8.1 为什么需要泛型 311
12.8.2 泛型基础 312
12.8.3 泛型不是协变的 313
12.8.4 类型通配符 314
12.8.5 有界泛型 314
12.8.6 泛型方法 315
习题 316
第13章 字符串与正则表达式 317
13.1 String类 317
13.1.1 字符串是对象 317
13.1.2 字符串对象的等价性 318
13.1.3 常用API 319
13.2 字符串格式化 320
13.2.1 Formatter类 320
13.2.2 格式说明与修饰符 322
13.3 案例实践14:简单文本搜索器 327
13.4 StringBuffer类 328
13.4.1 可变与不可变 328
13.4.2 StringBuffer类 329
13.5 正则表达式 330
13.5.1 概述 330
13.5.2 Pattern类 330
13.5.3 Matcher类 331
13.5.4 正则表达式语法 332
13.6 案例实践15:用户注册校验 334
习题 335
第14章 反射与注解 336
14.1 类型信息 336
14.1.1 Class类 336
14.1.2 获得Class对象 338
14.2 成员信息 341
14.2.1 Member接口 341
14.2.2 Field类 341
14.2.3 Method类 343
14.2.4 Constructor类 344
14.3 注解 346
14.3.1 注解的定义与使用 346
14.3.2 访问注解信息 347
14.4 标准注解 349
14.4.1 @Override 349
14.4.2 @Deprecated 350
14.4.3 @SuppressWarnings 351
14.5 文档注解及API文档生成 353
14.5.1 文档注解 353
14.5.2 生成API文档 356
14.6 元注解 356
14.6.1 @Target 356
14.6.2 @Retention 357
14.6.3 @Documented 358
14.6.4 @Inherited 359
14.7 案例实践16:简易单元测试工具 360
习题 362
附录A Eclipse使用简介 363
附录B 查阅API文档和源码 371
附录C Java编程规范与最佳
实践 374
附录D Java全栈工程师学习
路线 382

读者评论

赶紧抢沙发哦!

我要评论

作者介绍

胡平,安徽工程大学副教授,主要研究方向分布式计算与软件体系结构、机器学习与数据挖掘,主编:Java程序设计——原理与范例(普通高等教育十二五规划教材),电子工业出版社;副主编:Java EE开发技术与案例教程(普通高等教育十二五规划教材),人民邮电出版社

购买本书用户

相关图书