Java程序设计从入门到精通
编辑
锁定
讨论
上传视频
《Java程序设计从入门到精通》是2018年1月电子工业出版社出版的图书,作者是毛雪涛、丁毓峰。
书 名
Java程序设计从入门到精通
作 者
毛雪涛、丁毓峰
ISBN
9787121327063
页 数
604页定 价
88元
出版社
电子工业出版社
出版时间
2018年1月
开 本
16开
Java程序设计从入门到精通内容简介
编辑
本书以基础知识与实际动手编码相结合为原则,以Java从基础到核心开发为主线,通过Java开发中的基本知识和常见的应用技术,介绍了实用性极强且频繁使用的Java技术。本书共18章,分为4篇。涵盖的主要内容有:Java理论基础、Java开发环境、Java语言基础、流程控制、字符串、数组、对象与类、继承和多态、JSP技术、多线程技术、Java异常处理和调试技术、I/O系统编程、Java数据库编程、Java网络编程、Java图形界面编程及两个综合案例。本书内容丰富、实例典型、实用性强,适合各个层次想要学习Java开发技术的读者阅读,尤其适合没有Java基础而又要快速成长为Java程序员的读者阅读。[1]
Java程序设计从入门到精通图书目录
编辑
第1篇 入门篇
第1章 认识Java 1
1.1 Java的发展史 1
1.1.1 Java起源 1
1.1.2 Java发展 2
1.2 Java是什么 2
1.2.1 Java语言 2
1.2.2 Java平台 3
1.2.3 Java网络操作系统 4
1.3 Java的特点 5
1.4 Java 8的新特性 6
1.5 Java程序类型 6
1.6 Java技术体系 7
1.7 Java虚拟机 8
1.7.1 Java虚拟机支持的数据类型 8
1.7.2 Java虚拟机的生命周期 9
1.7.3 Java虚拟机的体系结构 9
1.8 垃圾收集器 11
1.9 技术解惑 11
1.9.1 Java虚拟机如何实现跨平台运行 11
1.9.2 Java语言为什么一直名列编程语言前三甲 12
第2章 搭建Java开发环境 14
2.1 J2SE的下载和安装 14
2.1.1 J2SE的下载 15
2.1.2 J2SE的安装 16
2.2 环境变量的配置与测试 17
2.2.1 配置环境变量Path 17
2.2.2 配置环境变量CLASSPATH 18
2.2.3 环境变量的测试 19
2.3 API文档的下载与使用 20
2.4 第一个应用程序 21
2.4.1 HelloWorld程序 21
2.4.2 程序编译和运行命令 22
2.4.3 HelloWorld的编译和运行 24
2.5 简单开发工具介绍 26
2.5.1 使用EditPlus开发Java 26
2.5.2 使用UltraEdit开发Java 29
2.6 集成开发环境Eclipse介绍 33
2.6.1 Eclipse的下载与安装 33
2.6.2 Eclipse的透视图(Perspective) 35
2.6.3 Eclipse的视图(View) 37
2.6.4 Eclipse的编辑器 37
2.6.5 Eclipse的工具栏和菜单栏 38
2.6.6 用Eclipse编写HelloWorld程序 39
2.7 拓展训练 42
2.7.1 训练一:用“*”直接输出三角形 42
2.7.2 训练二:可爱的表情符号 43
2.8 技术解惑 44
2.8.1 为什么必须设置好环境变量 44
2.8.2 选择Eclipse的多个原因 44
第3章 Java语言基础 45
3.1 标识符 45
3.1.1 标识符的概念 45
3.1.2 变量的命名规则 46
3.1.3 变量的命名技巧 46
3.2 关键字 47
3.3 注释 48
3.4 数据类型 49
3.4.1 整型 49
3.4.2 浮点型 50
3.4.3 字符型 51
3.4.4 布尔型 52
3.5 变量与常量 52
3.5.1 变量声明 52
3.5.2 变量赋值和初始化 53
3.5.3 常量 53
3.6 类型转换 54
3.6.1 数据类型之间的自动转换 55
3.6.2 强制类型转换 56
3.7 运算符 57
3.7.1 算术运算符 58
3.7.2 关系运算符 59
3.7.3 逻辑运算符 59
3.7.4 位运算符 61
3.7.5 自动递增和递减 64
3.7.6 三元运算符 65
3.7.7 运算符的优先级 66
3.8 拓展训练 67
3.8.1 训练一:不借助第三者实现两个变量值的互换 67
3.8.2 训练二:获取浮点数的最大/最小值 68
3.8.3 训练三:实现字母的大小写转换 69
3.8.4 训练四:实现输入字符的加密和解密 72
3.9 技术解惑 73
3.9.1 三元运算符与if-else语句的不同之处 73
3.9.2 强制类型转换的规则是什么 73
第4章 流程控制 74
4.1 顺序结构 74
4.2 条件语句 76
4.2.1 if语句 76
4.2.2 if-else语句 78
4.2.3 if-else-if语句 80
4.2.4 if语句的嵌套 82
4.2.5 布尔表达式 85
4.2.6 开关语句 87
4.3 循环语句 90
4.3.1 while循环语句 90
4.3.2 do-while循环语句 92
4.3.3 for循环语句 93
4.3.4 循环的嵌套 96
4.4 转向语句 99
4.4.1 break中断语句 99
4.4.2 continue条件继续语句 101
4.4.3 标签语句 103
4.5 返回语句 106
4.6 拓展训练 109
4.6.1 训练一:水仙花数 109
4.6.2 训练二:判断某一年是否为闰年 110
4.6.3 训练三:根据收入情况计算个人所得税 112
4.6.4 训练四:打印九九乘法表 113
4.7 技术解惑 115
4.7.1 break和continue的区别 115
4.7.2 do-while和while的区别 115
第2篇 高级技术篇
第5章 字符串 116
5.1 字符串简介 116
5.1.1 字符串常量 117
5.1.2 String创建字符串对象 117
5.1.3 StringBuffer创建字符串对象 119
5.2 连接字符串 120
5.2.1 与字符串的连接 121
5.2.2 与其他数据类型的连接 121
5.3 String类操作 122
5.3.1 基本操作方法 122
5.3.2 比较 124
5.3.3 转换 127
5.3.4 查找 129
5.3.5 截取和拆分 130
5.3.6 替换或修改 132
5.4 StringBuffer类操作 134
5.4.1 基本操作 134
5.4.2 字符串操作方法 136
5.4.3 添加append() 139
5.4.4 插入insert() 140
5.5 拓展训练 142
5.5.1 训练一:字符串大小写转换 142
5.5.2 训练二:将数字货币金额转换为大写格式 143
5.5.3 训练三:当前日期的格式化 146
5.5.4 训练四:验证IP地址的有效性 148
5.5.5 训练五:获取字符串中单词的个数 149
5.6 技术解惑 150
5.6.1 String类和StringBuffer类有什么区别 150
5.6.2 为什么说String类是不可变类 151
第6章 数组 152
6.1 一维数组 152
6.1.1 数组的概念 153
6.1.2 一维数组的声明 153
6.1.3 一维数组的初始化 153
6.1.4 一维数组的使用 154
6.1.5 一维数组的空间模型 156
6.1.6 基本数据类型数组 158
6.1.7 对象数组 159
6.1.8 数组参数 160
6.2 二维数组和多维数组 161
6.2.1 二维数组的声明 161
6.2.2 二维数组的初始化 161
6.2.3 二维数组的空间模型 162
6.2.4 二维数组的应用 162
6.3 数组操作 164
6.3.1 Java 8增强的工具类:Arrays 164
6.3.2 排序 164
6.3.3 查找 166
6.3.4 复制 167
6.3.5 填充数据 170
6.3.6 比较 171
6.4 拓展训练 173
6.4.1 训练一:获取一维数组中的最大最小值 173
6.4.2 训练二:九宫格问题 175
6.4.3 训练三:杨辉三角 177
6.5 技术解惑 179
6.5.1 Array和Arrays的区别到底是什么 179
6.5.2 for和foreach在遍历数组时的区别 179
第7章 对象与类 180
7.1 面向对象程序设计 180
7.1.1 面向对象程序设计概述 180
7.1.2 面向对象程序设计的特点 181
7.1.3 对象与类的关系 182
7.2 类的定义 184
7.2.1 MasterCard类的实现 184
7.2.2 MasterCard类的使用 186
7.2.3 访问控制符 188
7.2.4 初识构造方法 190
7.2.5 方法的参数 191
7.2.6 封装与隐藏 192
7.2.7 finalize()方法 194
7.3 静态域与静态方法 194
7.3.1 静态域 195
7.3.2 静态方法 197
7.3.3 Math类 198
7.4 构造方法 200
7.4.1 默认域初始化 200
7.4.2 默认构造方法 200
7.4.3 拷贝构造方法 201
7.4.4 构造方法的重载 201
7.4.5 构造方法的调用 202
7.4.6 创建初始化块 202
7.5 包 204
7.5.1 包的概念 204
7.5.2 包的导入 204
7.5.3 包名与目录的关系 205
7.5.4 静态导入 207
7.5.5 Java包介绍 207
7.6 类设计技巧 208
7.7 实例:完善MasterCard类 209
7.7.1 构造方法 210
7.7.2 setter()方法 212
7.7.3 getter()方法 212
7.7.4 其他方法 213
7.8 main()方法 214
7.9 拓展训练 215
7.9.1 训练一:摄氏温度与华氏温度的转换 215
7.9.2 训练二:汉诺塔问题的解决 216
7.9.3 训练三:使用局部内部类实现闹钟的应用 218
7.10 技术解惑 220
7.10.1 final、finally、finalize的区别 220
7.10.2 静态代码块和静态方法的区别 221
第8章 Java中的继承 222
8.1 父类和子类 222
8.2 super()构造方法调用 223
8.3 封装和继承 225
8.4 使用继承 227
8.4.1 Object类 227
8.4.2 定义equals()方法 228
8.5 关于设计好继承的几点建议 229
8.6 实例:一卡通类的继承 230
8.6.1 构造方法 231
8.6.2 setter()方法 232
8.6.3 getter()方法 232
8.6.4 方法覆盖 233
8.6.5 equals()方法 233
8.6.6 其他需要强调的地方 234
8.7 拓展训练——领导和员工的差异 235
8.8 技术解惑 238
8.8.1 super语句必须是子类构造方法的第一句吗 238
8.8.2 equals()方法的用法和“==”的用法一致吗 238
第9章 更深一步:多态与抽象类 239
9.1 多态性的概念 239
9.2 重载 239
9.2.1 重载的概念 240
9.2.2 重载的注意事项 241
9.3 覆盖 242
9.3.1 覆盖的概念 242
9.3.2 覆盖与访问权限 243
9.3.3 静态方法覆盖 245
9.3.4 覆盖与异常抛出 246
9.3.5 抽象方法覆盖 247
9.3.6 覆盖与重载小结 247
9.4 绑定 249
9.4.1 静态绑定 249
9.4.2 动态绑定 250
9.5 抽象类 252
9.5.1 抽象类的概念 253
9.5.2 抽象类的应用 253
9.5.3 抽象类应用的注意事项 255
9.6 Java 8改进的接口 256
9.6.1 接口的概念 256
9.6.2 Java 8中接口的定义 257
9.6.3 使用接口 258
9.6.4 接口的继承 259
9.6.5 抽象类和接口 261
9.6.6 面向接口编程 262
9.7 Java 8新增的Lambda表达式 262
9.7.1 Lambda表达式入门 263
9.7.2 Lambda表达式与函数式接口 264
9.7.3 方法引用与构造器引用 265
9.7.4 Lambda表达式与匿名内部类的联系和区别 269
9.8 拓展训练——重写(覆盖)父类中的方法 270
9.9 技术解惑 272
9.9.1 什么是Java的动态绑定与静态绑定 272
9.9.2 抽象类到底有什么用 272
第10章 Java Web应用——JSP 273
10.1 JSP技术概述 273
10.2 JSP运行环境搭建 273
10.2.1 Tomcat安装 274
10.2.2 测试 276
10.2.3 第一个JSP程序 277
10.3 基本语法 278
10.3.1 HTML注释 278
10.3.2 隐藏注释 278
10.3.3 声明 279
10.3.4 表达式 279
10.3.5 脚本集(Scriptlet) 279
10.4 JSP指令元素 280
10.4.1 include指令 280
10.4.2 page指令 281
10.4.3 taglib指令 283
10.5 JSP动作元素 284
10.5.1 285
10.5.2 285
10.5.3 289
10.5.4 290
10.5.5 290
10.5.6 291
10.6 内置对象 292
10.6.1 out对象 292
10.6.2 request对象 294
10.6.3 response对象 296
10.6.4 session对象 298
10.6.5 application对象 299
10.6.6 pageContext对象 301
10.6.7 exception对象 303
10.6.8 config对象 305
10.7 拓展训练 305
10.7.1 训练一:一个注册页面 305
10.7.2 训练二:跨页传递数据 307
10.8 技术解惑 309
10.8.1 静态include指令和动态include指令的比较 309
10.8.2 指令和动作的区别 310
第3篇 核心技术篇
第11章 多线程 311
11.1 线程基础 311
11.1.1 什么是线程 312
11.1.2 Thread类创建线程的方法 312
11.1.3 Thread类创建线程的步骤 315
11.1.4 Runnable接口创建线程的方法 316
11.1.5 Runnable接口创建线程的步骤 318
11.2 线程的生命周期 319
11.2.1 线程的4种状态 320
11.2.2 线程的创建和启动 321
11.3 线程调度 322
11.4 线程同步 325
11.4.1 同步的概念 325
11.4.2 同步的格式 327
11.4.3 同步的应用 328
11.5 线程通信 330
11.5.1 生产者/消费者 330
11.5.2 共享队列 332
11.5.3 运行生产者/消费者 332
11.6 死锁 335
11.7 拓展训练 337
11.7.1 训练一:篮球运动员的比赛安排 337
11.7.2 训练二:ATM的实现 339
11.8 技术解惑 343
11.8.1 线程有哪5种基本状态,它们如何相互转换 343
11.8.2 如何让一个线程运行特定的时间后优雅地终止 343
第12章 异常处理 345
12.1 异常的概念 345
12.2 异常的基本样式 346
12.3 Java异常类 347
12.3.1 异常类的层次结构 348
12.3.2 异常处理方法 349
12.4 异常捕获 351
12.4.1 异常捕获处理语句块 351
12.4.2 必须执行语句块 354
12.4.3 必须执行语句块的意外 355
12.5 异常抛出 356
12.5.1 异常抛出的概念 357
12.5.2 throw 357
12.5.3 throws 359
12.5.4 抛出异常的步骤 361
12.6 自定义异常 362
12.6.1 创建用户自定义异常 362
12.6.2 捕获运行时异常 364
12.7 拓展训练 365
12.7.1 训练一:强制类型转换异常 365
12.7.2 训练二:找不到指定类时异常 366
12.8 技术解惑 367
12.8.1 如何优雅地处理异常 367
12.8.2 详解throw与throws关键字的用法区别 368
第13章 I/O系统 370
13.1 I/O概述 370
13.2 文件 371
13.2.1 File类 371
13.2.2 File类的应用 373
13.2.3 RandomAccessFile类 375
13.2.4 RandomAccessFile类的应用 376
13.3 字节流InputStream、OutputStream 379
13.3.1 字节输入、输出流 379
13.3.2 字节文件输入、输出流 381
13.3.3 字节缓冲输入、输出流 383
13.3.4 字节数据输入、输出流 385
13.3.5 字节对象输入、输出流 386
13.4 字符流Reader、Writer 390
13.4.1 字符读、写流 390
13.4.2 字符输入、输出流 391
13.4.3 文件读、写字符流 393
13.4.4 字符缓冲区读、写流 394
13.5 拓展训练 396
13.5.1 训练一:按顺序创建文件 396
13.5.2 训练二:将一个大文件分割为多个小文件 397
13.5.3 训练三:生成ZIP压缩文件 399
13.6 技术解惑 402
13.6.1 把InputStream转换成String的几种方法 402
13.6.2 读取大文件用哪个类合适 403
第14章 Java数据库编程 405
14.1 数据库简介 405
14.1.1 数据库的概念 405
14.1.2 数据库的特点 406
14.2 SQL语句 406
14.2.1 SQL语句的分类 407
14.2.2 SELECT查询语句 407
14.2.3 INSERT插入语句 407
14.2.4 UPDATE更新语句 408
14.2.5 DELETE删除语句 408
14.2.6 CREATE建表语句 408
14.2.7 ALTER修改表语句 409
14.2.8 DROP删除表语句 409
14.3 MySQL 409
14.3.1 MySQL的安装配置 410
14.3.2 MySQL的使用 413
14.4 JDBC 416
14.4.1 JDBC简介 416
14.4.2 JDBC常见接口和类 417
14.4.3 JDBC数据库连接步骤 417
14.4.4 加载JDBC驱动程序 418
14.4.5 获取Connection连接对象 421
14.4.6 创建Statement对象 423
14.4.7 创建PreparedStatement对象 425
14.4.8 创建ResultSet对象 428
14.5 执行SQL语句的方式 430
14.5.1 使用JDBC API 430
14.5.2 使用execute()方法执行SQL语句 430
14.6 Java与各种数据库的连接 432
14.7 数据库开发案例 433
14.7.1 构造方法 433
14.7.2 数据查询 434
14.7.3 主方法 436
14.8 拓展训练 437
14.8.1 训练一:向数据库中批量插入数据 437
14.8.2 训练二:将图片文件存入数据库 439
14.9 技术解惑 442
14.9.1 多个connection能实现事务吗 442
14.9.2 如何测试java.sql.Connection类当前的连接是否正常可用 442
第15章 Java网络编程 443
15.1 网络程序设计基础 443
15.1.1 局域网与因特网 443
15.1.2 网络协议 444
15.1.3 端口和套接字 444
15.2 TCP程序设计基础 446
15.2.1 InetAddress类 446
15.2.2 ServerSocket类 448
15.2.3 TCP网络程序 450
15.3 UDP程序设计基础 453
15.3.1 DatagramPacket类 453
15.3.2 DatagramSocket类 453
15.3.3 UDP网络程序 454
15.4 拓展训练 457
15.4.1 训练一:实现网络文件的下载 457
15.4.2 训练二:模仿QQ创建实时聊天室 459
15.5 技术解惑 463
15.5.1 动态替换InetAddress中DNS的做法 463
15.5.2 输出datagramPacket的字符串时后面有很多小方块如何解决 464
第16章 Java图形界面编程 465
16.1 AWT简介 465
16.2 Swing基础 466
16.2.1 Swing的类层次结构 467
16.2.2 Swing的特点 468
16.2.3 Swing程序结构简介 468
16.3 事件类 470
16.3.1 事件类分类 470
16.3.2 动作事件类 471
16.3.3 调整事件类 471
16.3.4 焦点事件类 472
16.3.5 项目事件类 472
16.3.6 键盘事件类 473
16.3.7 鼠标事件类 473
16.3.8 窗口事件类 474
16.4 事件监听器 475
16.4.1 事件监听器接口 475
16.4.2 事件监听器的特点 477
16.5 轻量级容器 477
16.5.1 根面板(JRootPane) 478
16.5.2 面板(JPanel) 478
16.5.3 分层面板(JLayeredPane) 479
16.5.4 滚动窗口(JScrollPane) 479
16.5.5 分隔板(JSplitPane) 479
16.5.6 选项板(JTabbedPane) 480
16.5.7 工具栏(JToolBar) 480
16.6 Swing组件 480
16.6.1 按钮(JButton) 481
16.6.2 复选框(JCheckBox) 481
16.6.3 单选框(JRadioButton) 484
16.6.4 组合框(JComboBox) 485
16.6.5 进度条(JProgressBar) 485
16.6.6 表格(JTable) 485
16.6.7 树(JTree) 486
16.7 拓展训练 487
16.7.1 训练一:设置闪烁的标题栏 487
16.7.2 训练二:建立简单的时钟布局 489
16.7.3 训练三:给你最喜爱的脱口秀演员投票 492
16.7.4 训练四:包含图片的弹出菜单 495
16.7.5 训练五:震动效果的提示信息 497
16.8 技术解惑 499
16.8.1 Swing重要吗 499
16.8.2 Swing是否适合做大型项目及桌面应用 499
第4篇 实战篇
第17章 综合案例:学生信息管理系统 501
17.1 需求分析 501
17.2 系统设计 501
17.3 登录模块 503
17.3.1 设计构想 503
17.3.2 实现登录模块 503
17.4 学生信息管理系统 506
17.4.1 设计构想 506
17.4.2 实现学生信息管理系统主界面 507
17.4.3 增加学生信息 509
17.4.4 删除学生信息 512
17.4.5 修改学生信息 515
17.4.6 查询学生信息 519
17.4.7 成绩查询 523
17.4.8 退出系统 526
17.5 教师信息管理系统 528
17.5.1 教师信息管理系统主界面 528
17.5.2 增加教师信息 531
17.5.3 删除教师信息 534
17.5.4 修改教师信息 537
17.5.5 录入成绩 541
17.5.6 删除成绩 544
17.5.7 修改成绩 547
17.5.8 教师信息查询 550
17.5.9 退出系统 554
17.6 开发常见问题与解决 554
第18章 综合案例:进销存管理系统 556
18.1 系统分析 556
18.2 系统设计 557
18.2.1 系统架构 558
18.2.2 关键数据结构图 559
18.3 开发环境 559
18.3.1 服务器软件环境 559
18.3.2 服务器硬件环境 560
18.4 数据表设计 560
18.4.1 订单表设计 560
18.4.2 商品表设计 560
18.4.3 用户数据表设计 561
18.4.4 货架数据表设计 561
18.4.5 销售记录数据表设计 561
18.4.6 工作记录数据表设计 561
18.5 创建项目 562
18.6 系统文件夹组织结构 562
18.7 公共类设计 563
18.8 登录模块设计 565
18.9 系统主窗口设计 565
18.10 进货单模块设计 569
18.11 销售单模块设计 571
18.12 库存管理模块设计 573
18.13 数据库备份与恢复模块设计 575
18.14 运行项目 576
18.15 系统打包发行 576
参考资料
1.
Java程序设计从入门到精通
.电子工业出版社[引用日期2020-04-06]