书籍 Java 11官方入门教程  第8版的封面

Java 11官方入门教程 第8版PDF电子书下载

杜静,敖富江译;(美国)Herbert Schildt

购买点数

16

出版社

清华大学出版社

出版时间

2019

ISBN

标注页数

516 页

PDF页数

532 页

图书目录

第1章 Java基础 1

1.1 Java的历史和基本原则 2

1.1.1 Java的起源 2

1.1.2 Java与C和C+++的关系 3

1.1.3 Java对Internet的贡献 3

1.1.4 Java的魔法:字节码 4

1.1.5 超越applet 5

1.1.6 更快速的发布时间表 6

1.1.7 Java的主要术语 6

1.2 面向对象程序设计 6

1.2.1 封装 7

1.2.2 多态性 8

1.2.3 继承 8

1.3 Java开发工具包 8

1.4 第一个简单的程序 9

1.4.1 输入程序 9

1.4.2 编译程序 10

1.4.3 逐行分析第一个程序 10

1.5 处理语法错误 12

1.6 第二个简单程序 12

1.7 另一种数据类型 14

1.8 两个控制语句 16

1.8.1 if语句 16

1.8.2 for循环语句 18

1.9 创建代码块 19

1.10 分号和定位 20

1.11 缩进原则 20

1.12 Java关键字 22

1.13 Java标识符 23

1.14 Java类库 23

1.15 自测题 23

第2章 数据类型与运算符 25

2.1 数据类型为什么重要 26

2.2 Java的基本类型 26

2.2.1 整数类型 26

2.2.2 浮点型 27

2.2.3 字符型 28

2.2.4 布尔类型 29

2.3 字面值 31

2.3.1 十六进制、八进制和二进制字面值 31

2.3.2 字符转义序列 32

2.3.3 字符串字面值 32

2.4 变量详解 33

2.4.1 初始化变量 33

2.4.2 动态初始化 33

2.5 变量的作用域和生命期 34

2.6 运算符 36

2.7 算术运算符 36

2.8 关系运算符和逻辑运算符 37

2.9 短路逻辑运算符 39

2.10 赋值运算符 40

2.11 速记赋值 40

2.12 赋值中的类型转换 41

2.13 不兼容类型的强制转换 42

2.14 运算符的优先级 43

2.15 表达式 45

2.15.1 表达式中的类型转换 45

2.15.2 间距和圆括号 46

2.16 自测题 47

第3章 程序控制语句 49

3.1 从键盘输入字符 50

3.2 if语句 51

3.2.1 嵌套if语句 52

3.2.2 if-else-if阶梯状结构 53

3.3 switch语句 54

3.4 for循环 58

3.4.1 for循环的一些变体 60

3.4.2 缺失部分要素的for循环 61

3.4.3 无限循环 61

3.4.4 没有循环体的循环 62

3.4.5 在for循环内部声明循环控制变量 62

3.4.6 增强型for循环 63

3.5 while循环 63

3.6 do-while循环 64

3.7 使用break语句退出循环 69

3.8 将break语句作为一种goto语句使用 70

3.9 使用continue语句 73

3.10 嵌套循环 77

3.11 自测题 78

第4章 类、对象和方法 81

4.1 类的基础知识 82

4.1.1 类的基本形式 82

4.1.2 定义类 83

4.2 如何创建对象 85

4.3 引用变量和赋值 85

4.4 方法 86

4.5 从方法返回值 88

4.6 返回值 89

4.7 使用形参 90

4.8 构造函数 98

4.9 带形参的构造函数 99

4.10 深入介绍new运算符 100

4.11 垃圾回收 101

4.12 this关键字 101

4.13 自测题 103

第5章 其他数据类型与运算符 105

5.1 数组 106

5.2 多维数组 110

5.2.1 二维数组 110

5.2.2 不规则数组 111

5.2.3 三维或更多维的数组 112

5.2.4 初始化多维数组 112

5.3 另一种声明数组的语法 113

5.4 数组引用赋值 114

5.5 使用length成员 115

5.6 for-each形式的循环 119

5.6.1 迭代多维数组 122

5.6.2 应用增强型for循环 123

5.7 字符串 123

5.7.1 构造字符串 124

5.7.2 操作字符串 124

5.7.3 字符串数组 126

5.7.4 字符串是不可变的 127

5.7.5 使用String控制switch语句 128

5.8 使用命令行实参 128

5.9 使用局部变量的类型推断功能 130

5.9.1 引用类型的局部变量类型推断 131

5.9.2 在for循环中使用局部变量类型推断 132

5.9.3 var的一些限制 133

5.10 位运算符 133

5.10.1 位运算符的与、或、异或和非 134

5.10.2 移位运算符 137

5.10.3 位运算符的赋值速记符 139

5.11 ?运算符 141

5.12 自测题 143

第6章 方法和类详解 145

6.1 控制对类成员的访问 146

6.2 向方法传递对象 150

6.3 返回对象 153

6.4 方法重载 155

6.5 重载构造函数 159

6.6 递归 163

6.7 理解static关键字 165

6.8 嵌套类和内部类 170

6.9 varargs 173

6.9.1 varargs基础 173

6.9.2 重载varargs方法 175

6.9.3 varargs和歧义 177

6.10 自测题 178

第7章 继承 179

7.1 继承的基础知识 180

7.2 成员访问与继承 182

7.3 构造函数和继承 184

7.4 使用super调用超类构造函数 186

7.5 使用super访问超类成员 189

7.6 创建多级层次结构 192

7.7 何时调用构造函数 195

7.8 超类引用和子类对象 196

7.9 方法重写 200

7.10 重写的方法支持多态性 202

7.11 为何使用重写方法 203

7.12 使用抽象类 207

7.13 使用final 210

7.13.1 使用final防止重写 210

7.13.2 使用final防止继承 210

7.13.3 对数据成员使用final 211

7.14 Object类 212

7.15 自测题 213

第8章 包和接口 215

8.1 包 216

8.1.1 定义包 216

8.1.2 寻找包和CLASSPATH 217

8.1.3 一个简短的包示例 217

8.2 包和成员访问 218

8.3 理解被保护的成员 220

8.4 导入包 222

8.5 Java的类库位于包中 223

8.6 接口 223

8.7 实现接口 224

8.8 使用接口引用 227

8.9 接口中的变量 233

8.10 接口能够扩展 234

8.11 默认接口方法 235

8.11.1 默认方法的基础知识 235

8.11.2 默认方法的实际应用 236

8.11.3 多继承问题 237

8.12 在接口中使用静态方法 238

8.13 私有接口方法 239

8.14 有关包和接口的最后思考 240

8.15 自测题 240

第9章 异常处理 241

9.1 异常的层次结构 242

9.2 异常处理基础 242

9.2.1 使用关键字try和catch 242

9.2.2 一个简单的异常示例 243

9.3 未捕获异常的结果 245

9.4 使用多个catch语句 247

9.5 捕获子类异常 247

9.6 try代码块可以嵌套 248

9.7 抛出异常 249

9.8 Throwable详解 251

9.9 使用finally 252

9.10 使用throws语句 254

9.11 另外3种异常功能 255

9.12 Java的内置异常 256

9.13 创建异常子类 258

9.14 自测题 262

第10章 使用I/O 265

10.1 基于流的Java I/O 266

10.2 字节流和字符流 266

10.3 字节流类 266

10.4 字符流类 267

10.5 预定义流 267

10.6 使用字节流 268

10.6.1 读取控制台输入 269

10.6.2 写入控制台输出 269

10.7 使用字节流读写文件 270

10.7.1 从文件输入 270

10.7.2 写入文件 273

10.8 自动关闭文件 275

10.9 读写二进制数据 277

10.10 随机访问文件 281

10.11 使用Java字符流 283

10.11.1 使用字符流的控制台输入 284

10.11.2 使用字符流的控制台输出 286

10.12 使用字符流的文件I/O 287

10.12.1 使用FileWriter 287

10.12.2 使用FileReader 288

10.13 使用Java的类型封装器转换数值字符串 289

10.14 自测题 296

第11章 多线程程序设计 299

11.1 多线程的基础知识 300

11.2 Thread类和Runnable接口 300

11.3 创建一个线程 301

11.4 创建多个线程 309

11.5 确定线程何时结束 311

11.6 线程的优先级 314

11.7 同步 316

11.8 使用同步方法 317

11.9 同步语句 319

11.10 使用notify()、wait()和notifyAll()的线程通信 321

11.11 线程的挂起、继续执行和停止 326

11.12 自测题 330

第12章 枚举、自动装箱、静态导入和注解 333

12.1 枚举 334

12.2 Java语言中的枚举是类类型 336

12.3 values()和valueOf()方法 336

12.4 构造函数、方法、实例变量和枚举 337

12.5 枚举继承enum 339

12.6 自动装箱 344

12.7 类型封装器 344

12.8 自动装箱的基础知识 346

12.9 自动装箱和方法 347

12.10 发生在表达式中的自动装箱/自动拆箱 348

12.11 静态导入 349

12.12 注解(元数据) 352

12.13 自测题 354

第13章 泛型 355

13.1 泛型的基础知识 356

13.2 简单的泛型示例 356

13.2.1 泛型只能用于引用类型 359

13.2.2 泛型类型是否相同基于其类型实参 359

13.2.3 带有两个类型形参的泛型类 360

13.2.4 泛型类的一般形式 361

13.3 受限类型 361

13.4 使用通配符实参 364

13.5 受限通配符 366

13.6 泛型方法 369

13.7 泛型构造函数 370

13.8 泛型接口 371

13.9 原类型和遗留代码 377

13.10 使用菱形运算符进行类型推断 379

13.11 局部变量类型推断和泛型 380

13.12 擦除特性 380

13.13 歧义错误 380

13.14 一些泛型限制 381

13.14.1 类型形参不能实例化 381

13.14.2 对静态成员的限制 381

13.14.3 泛型数组限制 382

13.14.4 泛型异常限制 383

13.15 继续学习泛型 383

13.16 自测题 383

第14章 lambda表达式和方法引用 385

14.1 lambda表达式简介 386

14.1.1 lambda表达式的基础知识 386

14.1.2 函数式接口 387

14.1.3 几个lambda表达式示例 389

14.2 块lambda表达式 392

14.3 泛型函数式接口 393

14.4 lambda表达式和变量捕获 398

14.5 从lambda表达式中抛出异常 399

14.6 方法引用 401

14.6.1 静态方法的方法引用 401

14.6.2 实例方法的方法引用 402

14.7 构造函数引用 406

14.8 预定义的函数式接口 408

14.9 自测题 409

第15章 模块 411

15.1 模块基础 412

15.1.1 简单的模块示例 413

15.1.2 编译、运行第一个模块示例 416

15.1.3 requires和exports 417

15.2 java.base和平台模块 417

15.3 旧代码和未命名的模块 418

15.4 导出到特定的模块 419

15.5 使用requires transitive 420

15.6 使用服务 423

15.6.1 服务和服务提供程序的基础知识 423

15.6.2 基于服务的关键字 424

15.6.3 基于模块的服务示例 424

15.7 其他模块功能 430

15.7.1 open模块 430

15.7.2 opens语句 430

15.7.3 requires static 430

15.8 继续模块的学习 431

15.9 自测题 431

第16章 Swing介绍 433

16.1 Swing的起源和设计原则 434

16.2 组件和容器 435

16.2.1 组件 435

16.2.2 容器 436

16.2.3 顶级容器窗格 436

16.3 布局管理器 436

16.4 第一个简单的Swing程序 437

16.5 Swing事件处理 440

16.5.1 事件 441

16.5.2 事件源 441

16.5.3 事件监听器 441

16.5.4 事件类和监听器接口 441

16.6 使用JButton 442

16.7 使用JTextField 445

16.8 使用JCheckBox 448

16.9 使用JList 450

16.10 使用匿名内部类或lambda表达式来处理事件 458

16.11 自测题 459

附录A 自测题答案 461

附录B 使用Java的文档注释 495

附录C 编译运行简单的单文件程序 503

附录D JShell简介 505

附录E 更多Java关键字 513

查看更多关于的内容

本类热门
在线购买PDF电子书
下载此书RAR压缩包