《实战Java程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:北京尚学堂科技有限公司编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2018
  • ISBN:9787302484981
  • 页数:450 页
图书介绍:本书共分为十三章节,前十二章节分别讲述了Java入门、数据类型及运算符、控制语句、面向对象基础、面向对象进阶、异常机制、数组、常用类、容器、IO、多线程、网络编程技术,最后一章,以飞机游戏项目为切入点,整合了前边学习的所有技术,寓教于乐。本书本着重理论更重实践的原则,提供了非常丰富的案例库,手把手的引领同学们步入程序员的殿堂!

第1章 Java入门 1

1.1 计算机语言发展史及未来方向 1

1.1.1 计算机己经成为人类大脑的延伸 1

1.1.2 算法是计算机的“灵魂”,编程语言是塑造计算机“灵魂”的工具 2

1.1.3 为什么担心软件开发人才饱和是多余的 3

1.1.4 未来30年必将是软件人才的世界 3

1.2 常用的编程语言 4

1.3 Java语言介绍 6

1.3.1 Java发展简史 6

1.3.2 Java的核心优势 6

1.3.3 Java各版本的含义 7

1.3.4 Java的特性 7

1.3.5 Java应用程序的运行机制 9

1.3.6 JVM、JRE和JDK 9

1.4 Java开发环境搭建 10

1.4.1 JDK的下载和安装 10

1.4.2 环境变量Path的配置 12

1.4.3 JDK安装测试 13

1.5 建立和运行第一个Java程序 13

1.5.1 建立第一个Java程序 13

1.5.2 编译第一个程序时的常见错误 15

1.5.3 总结第一个Java程序 15

1.5.4 最常用的DOS命令 16

1.6 常用的Java开发工具 16

1.7 Eclipse使用10分钟入门 17

1.7.1 下载和安装Eclipse 17

1.7.2 在Eclipse中创建Java项目 18

1.7.3 使用Eclipse开发和运行Java程序 20

1.8 30分钟完成桌球小游戏项目 22

本章总结 28

本章作业 28

第2章 数据类型和运算符 30

2.1 注释 30

2.2 标识符 31

2.3 Java中的关键字/保留字 32

2.4 变量 32

2.4.1 变量的本质 32

2.4.2 变量的分类 33

2.5 常量 35

2.6 基本数据类型 36

2.6.1 整型 36

2.6.2 浮点型 37

2.6.3 字符型 39

2.6.4 布尔型 40

2.7 运算符 40

2.7.1 算术运算符 40

2.7.2 赋值及其扩展赋值运算符 41

2.7.3 关系运算符 42

2.7.4 逻辑运算符 42

2.7.5 位运算符 43

2.7.6 字符串连接符 43

2.7.7 条件运算符 43

2.7.8 运算符优先级问题 44

2.8 数据类型的转换 44

2.8.1 自动类型转换 45

2.8.2 强制类型转换 45

2.8.3 基本类型转换时的常见错误和问题 46

2.9 简单的键盘输入和输出 46

本章总结 47

本章作业 48

第3章 控制语句 50

3.1 条件判断结构 50

3.1.1 if单分支结构 51

3.1.2 if-else双分支结构 52

3.1.3 if-else if-else多分支结构 54

3.1.4 switch多分支结构 55

3.2 循环结构 57

3.2.1 while循环 57

3.2.2 do-while循环 58

3.2.3 for循环 59

3.2.4 嵌套循环 62

3.2.5 break语句和continue语句 63

3.2.6 带标签的break语句和continue语句 64

3.3 语句块 65

3.4 方法 65

3.5 方法的重载 67

3.6 递归结构 68

本章总结 70

本章作业 71

第4章 Java面向对象编程基础 74

4.1 面向过程和面向对象思想 74

4.2 对象的进化史 75

4.3 对象和类的概念 77

4.4 类和对象初步 77

4.4.1 第一个类的定义 78

4.4.2 属性(field成员变量) 78

4.4.3 方法 79

4.4.4 一个典型类的定义和UML图 79

4.5 面向对象的内存分析 80

4.6 对象的使用及内存分析 81

4.7 构造器 82

4.8 构造器的重载 83

4.9 垃圾回收机制 84

4.9.1 垃圾回收的原理和算法 84

4.9.2 通用的分代垃圾回收机制 85

4.9.3 JVM调优和Full GC 86

4.9.4 开发中容易造成内存泄露的操作 86

4.10 this关键字 87

4.11 static关键字 89

4.12 静态初始化块 90

4.13 参数传值机制 91

4.14 包 92

4.14.1 package 92

4.14.2 JDK中的常用包 92

4.14.3 导入类 93

4.14.4 静态导入 94

本章总结 94

本章作业 95

第5章 Java面向对象编程进阶 97

5.1 继承 97

5.1.1 继承的实现 97

5.1.2 instanceof运算符 98

5.1.3 继承的使用要点 99

5.1.4 方法的重写 99

5.2 Object类 100

5.2.1 Object类的基本特性 100

5.2.2 toString方法 101

5.2.3 ==和equals方法 102

5.3 super关键字 103

5.4 封装 104

5.4.1 封装的作用和含义 104

5.4.2 封装的实现——使用访问控制符 106

5.4.3 封装的使用细节 109

5.5 多态 110

5.6 对象的转型 112

5.7 final关键字 113

5.8 抽象方法和抽象类 114

5.9 接口interface 115

5.9.1 接口的作用 115

5.9.2 定义和使用接口 116

5.9.3 接口的多继承 117

5.9.4 面向接口编程 118

5.10 内部类 119

5.10.1 内部类的概念 119

5.10.2 内部类的分类 120

5.11 字符串String 123

5.11.1 String基础 124

5.11.2 String类和常量池 124

5.11.3 阅读API文档 125

5.11.4 String类的常用方法 127

5.11.5 字符串相等的判断 129

5.12 设计模式相关知识 130

5.12.1 开闭原则 130

5.12.2 相关设计模式 130

本章总结 130

本章作业 132

第6章 异常机制 136

6.1 导引问题 136

6.2 异常的概念 137

6.3 异常的分类 138

6.3.1 Error 138

6.3.2 Exception 139

6.3.3 RuntimeException——运行时异常 139

6.3.4 CheckedException己检查异常 143

6.4 异常的处理方式之一:捕获异常 143

6.5 异常的处理方式之二:声明异常(throws子句) 145

6.6 自定义异常 146

6.7 如何利用百度解决异常问题 148

本章总结 148

本章作业 149

第7章 数组 151

7.1 数组概述 151

7.2 创建数组和初始化 151

7.2.1 数组声明 151

7.2.2 初始化 153

7.3 常用数组操作 154

7.3.1 数组的遍历 154

7.3.2 for-each循环 155

7.3.3 数组的复制 155

7.3.4 java.util.Arrays类 156

7.4 多维数组 158

7.5 用数组存储表格数据 160

7.6 冒泡排序算法 161

7.6.1 冒泡排序的基础算法 161

7.6.2 冒泡排序的优化算法 162

7.7 二分法检索 163

本章总结 165

本章作业 166

第8章 常用类 168

8.1 基本数据类型的包装类 168

8.1.1 包装类的基本知识 168

8.1.2 包装类的用途 169

8.1.3 自动装箱和拆箱 170

8.1.4 包装类的缓存问题 172

8.2 字符串相关类 174

8.2.1 String类 174

8.2.2 StringBuffer和StringBuilder 176

8.2.3 不可变和可变字符序列使用陷阱 178

8.3 时间处理相关类 179

8.3.1 Date时间类(java.util.Date) 179

8.3.2 DateFormat类和SimpleDateFormat类 181

8.3.3 Calendar日历类 183

8.4 Math类 186

8.5 File类 188

8.5.1 File类的基本用法 188

8.5.2 递归遍历目录结构和树状展现 191

8.6 枚举 192

本章总结 194

本章作业 194

第9章 容器 197

9.1 泛型 198

9.1.1 自定义泛型 198

9.1.2 容器中使用泛型 198

9.2 Collection接口 199

9.3 List接口 200

9.3.1 List特点和常用方法 200

9.3.2 ArrayList的特点和底层实现 203

9.3.3 LinkedList的特点和底层实现 204

9.3.4 Vector向量 205

9.4 Map接口 205

9.4.1 HashMap和HashTable 206

9.4.2 HashMap底层实现详解 207

9.4.3 二叉树和红黑二叉树 212

9.4.4 TreeMap的使用和底层实现 215

9.5 Set接口 215

9.5.1 HashSet的基本应用 215

9.5.2 HashSet的底层实现 216

9.5.3 TreeSet的使用和底层实现 217

9.6 Iterator接口 218

9.6.1 迭代器介绍 218

9.6.2 使用Iterator迭代器遍历容器元素(List/Set/Map) 218

9.7 遍历集合的方法总结 220

9.8 Collections工具类 221

本章总结 222

本章作业 223

第10章 输入与输出技术 226

10.1 基本概念和I/O入门 227

10.1.1 数据源 227

10.1.2 流的概念 227

10.1.3 第一个简单的I/O流应用程序 228

10.1.4 Java中流的概念细分 230

10.1.5 Java中I/O流类的体系 231

10.1.6 四大I/O抽象类 232

10.2 常用流详解 233

10.2.1 文件字节流 233

10.2.2 文件字符流 235

10.2.3 缓冲字节流 237

10.2.4 缓冲字符流 239

10.2.5 字节数组流 241

10.2.6 数据流 242

10.2.7 对象流 244

10.2.8 转换流 246

10.2.9 随意访问文件流 248

10.3 Java对象的序列化和反序列化 249

10.3.1 序列化和反序列化是什么 249

10.3.2 序列化涉及的类和接口 250

10.3.3 序列化与反序列化的步骤和实例 250

10.4 装饰器模式构建I/O流体系 252

10.4.1 装饰器模式简介 252

10.4.2 I/O流体系中的装饰器模式 253

10.5 Apache IOUtils和FileUtils的使用 253

10.5.1 Apache基金会介绍 254

10.5.2 FileUtils的妙用 254

10.5.3 IOUtils的妙用 258

本章总结 259

本章作业 260

第11章 多线程技术 262

11.1 基本概念 262

11.1.1 程序 262

11.1.2 进程 262

11.1.3 线程 263

11.1.4 线程和进程的区别 264

11.1.5 进程与程序的区别 264

11.2 Java中如何实现多线程 264

11.2.1 通过继承Thread类实现多线程 265

11.2.2 通过Runnable接口实现多线程 266

11.3 线程状态和生命周期 266

11.3.1 线程状态 266

11.3.2 终止线程的典型方式 267

11.3.3 暂停线程执行的常用方法 269

11.3.4 联合线程的方法 270

11.4 线程的基本信息和优先级别 272

11.4.1 获取线程基本信息的方法 272

11.4.2 线程的优先级 273

11.5 线程同步 274

11.5.1 什么是线程同步 274

11.5.2 实现线程同步 275

11.5.3 死锁及解决方案 277

11.6 线程并发协作(生产者-消费者模式) 280

11.7 任务定时调度 284

本章总结 285

本章作业 286

第12章 网络编程 289

12.1 基本概念 289

12.1.1 计算机网络 289

12.1.2 网络通信协议 290

12.1.3 数据封装与解封 291

12.1.4 IP地址与端口 293

12.1.5 URL 294

12.1.6 Socket 294

12.1.7 TCP协议和UDP协议 294

12.2 Java网络编程中的常用类 295

12.2.1 InetAddress 296

12.2.2 InetSocketAddress 297

12.2.3 URL类 297

12.3 TCP通信的实现 298

12.4 UDP通信的实现 308

本章总结 313

本章作业 314

第13章 J20飞机游戏项目 316

13.1 简介 316

13.2 游戏项目基本功能的开发 316

13.2.1 使用AWT技术画出游戏主窗口(0.1版) 317

13.2.2 图形和文本绘制(0.2版) 319

13.2.3 ImageIO实现图片加载技术(0.3版) 319

13.2.4 多线程和内部类实现动画效果(0.4版) 321

13.2.5 双缓冲技术解决闪烁问题(0.4) 324

13.2.6 GameObject类设计(0.5版) 325

13.3 飞机类设计(0.6版) 327

13.3.1 键盘控制原理 328

13.3.2 飞机类:增加操控功能 328

13.3.3 主窗口类:增加键盘监听 329

13.4 炮弹类设计(0.7版) 330

13.4.1 炮弹类的基本设计 330

13.4.2 炮弹任意角度飞行路径 331

13.4.3 容器对象存储多发炮弹 331

13.5 碰撞检测技术(0.8版) 332

13.5.1 矩形检测原理 333

13.5.2 炮弹和飞机碰撞检测 333

13.6 爆炸效果的实现(0.9版) 334

13.6.1 爆炸类的基本设计 335

13.6.2 主窗口类创建爆炸对象 335

13.7 其他功能(1.0版) 337

13.7.1 计时功能 337

13.7.2 学员开发Java基础小项目案例展示和说明 338

第14章 GUI编程——Swing基础 341

14.1 AWT简介 342

14.2 Swing简介 342

14.2.1 javax.swing.JFrame 343

14.2.2 javax.swing.JPanel 347

14.2.3 常用基本控件 349

14.2.4 布局管理器 352

本章总结 357

本章作业 358

第15章 事件模型 359

15.1 事件模型简介及常用事件类型 359

15.1.1 事件控制的过程 359

15.1.2 ActionEvent事件 361

15.1.3 MouseEvent事件 364

15.1.4 KeyEvent事件 366

15.1.5 WindowEvent事件 366

15.2 事件处理的实现方式 367

15.2.1 使用内部类实现事件处理 367

15.2.2 使用适配器实现事件处理 369

15.2.3 使用匿名内部类实现事件处理 372

本章总结 380

本章作业 380

第16章 Swing中的其他控件 382

16.1 单选按钮控件(JRadioButton) 382

16.2 复选框控件(JCheckBox) 385

16.3 下拉列表控件(JComboBox) 386

16.4 表格控件(JTable) 389

16.4.1 JTable的简单应用 390

16.4.2 DefaultTableModel 393

16.5 用户注册案例 396

本章总结 402

本章作业 402

第17章 反射机制 404

17.1 动态语言 404

17.2 反射机制的本质和Class类 404

17.2.1 反射机制的本质 405

17.2.2 java.lang.Class类 406

17.3 反射机制的常见操作 407

17.3.1 操作构造器(Constructor类) 408

17.3.2 操作属性(Field类) 409

17.3.3 操作方法(Method类) 410

17.4 反射机制的效率问题 411

本章总结 412

本章作业 412

第18章 核心设计模式 415

18.1 GoF 23设计模式简介 415

18.2 单例模式 416

18.2.1 饿汉式 417

18.2.2 懒汉式 417

18.2.3 静态内部类式 418

18.2.4 枚举式单例 419

18.2.5 四种单例创建模式的选择 419

18.3 工厂模式 420

18.4 装饰模式 422

18.5 责任链模式 425

18.6 模板方法模式(钩子方法) 429

18.7 观察者模式 431

18.8 代理模式(动态) 433

本章总结 437

本章作业 438

附录 Java 300集大型教学视频目录 440