技术教育社区
www.teccses.org

Java大学教程(第十一版)

封面

作者:保罗·戴特尔

页数:924

出版社:电子工业出版社

出版日期:2021

ISBN:9787121406812

电子书格式:pdf/epub/txt

内容简介

本书是一本Java 编程方面的优秀教材,秉承Deitel系列丛书的一贯特点:内容丰富、覆盖面广,提供详细代码与实例研究,总结出大量的面向对象编程技巧和经验。本书详细说明了在Java 中面向对象编程的基本理论及实用知识,以初学者为起点,由点到面、由浅入深、循序渐进地介绍了对象、继承、多态、接口、异常处理、JavaFX GUI、数据结构和集合、lambda与流、递归、搜索与排序、并发性、JDBC、JavaFX与多媒体、JShell 等,并且详细介绍了网络应用的开发与实践。第十一版在前一版的基础上增加了更多的实际案例,更新了很多内容,有助于读者学习和借鉴。本书包括更广泛的教学特性,其中列举了数百个可实际使用的程序,并给出了运行结果,可以使学生在学习时更为直观。

作者简介

Paul Deitel,Deitel & Associates公司CEO兼CTO,具有超过35年计算机行业的工作经验,毕业于麻省理工学院。他拥有Java Certified Programmer和Java Certified Developer认证证书,并且被授予Oracle Java Champion称号。通过Deitel & Associates公司,他向行业客户提供了数以百计的编程课程,这些客户包括:Cisco,IBM, Siemens,Sun Microsystems(现在属于Oracle),Dell,Fidelity,NASA肯尼迪航天中心,美国国家风暴实验室,白沙导弹基地,Rogue Wave Software,Boeing,SunGard Higher Education,Nortel Networks,Puma,iRobot,Invensys,等等。他和合作者Harvey Deitel博士,是全球畅销的编程语言教材和专业图书/视频产品的作者。Harvey Deitel博士,Deitel & Associates公司主席兼首席战略官,具有55年以上的计算机行业工作经验。Deitel博士在麻省理工学院获得电子工程学士和硕士学位,在波士顿大学获得数学博士学位――在将计算机科学专业从这些专业分离出去之前,Deitel博士已经学习过计算机知识。他具有丰富的大学教学经验,在与儿子Paul于1991年创立Deitel & Associates公司之前,Deitel博士是波士顿大学计算机科学系主任并获得了终身教职。他们的出版物已经赢得了国际声誉,并被翻译成了日文、德文、俄文、西班牙文、法文、波兰文、意大利文、简体中文、繁体中文、韩文、葡萄牙文、希腊文、乌尔都文和土耳其文。Deitel博士为许多大公司、学术机构、政府部门和军队提供了数百场的专业编程培训。张永健,国际关系学院副教授,毕业于北京邮电大学,专业为通信、计算机,目前从事网络及信息安全、移动互联网安全技术、大数据及多媒体安全等研究方向,并教授计算机安全等相关课程。

本书特色

适读人群 :本书结构清晰、逻辑性强,适合作为相关专业Java程序设计课程的教材,是所有对Java编程感兴趣的读者的有益参考书,也可供各类软件开发人员参考。最 国外出版多年的Java宝典教程,概念清晰,逻辑性强。
最 尽早讲解类和对象。
最 广泛的基础知识并提供大量实例。
最 轻松使用JavaSE 8或Java SE 9。
最 章末习题提供了“挑战题”及“编程项目”。
最 丰富教辅资源。

目录

目 录

第1章 计算机、Internet与Java简介 1

1.1 简介 2

1.2 硬件和软件 3

1.3 数据层次 4

1.4 机器语言、汇编语言和高级语言 6

1.5 对象技术介绍 7

1.6 操作系统 9

1.7 编程语言 11

1.8 Java 12

1.9 典型的Java开发环境 12

1.10 测试驱动的Java应用 15

1.11 Internet和WWW 17

1.12 软件技术 19

1.13 Java问题解答 20

自测题 20

自测题答案 21

练习题 21

挑战题 22

第2章 Java应用介绍、输入/输出、运算符 23

2.1 简介 23

2.2 第一个Java程序:输出一行文本 24

2.3 修改第一个Java程序 28

2.4 使用printf显示文本 29

2.5 另一个Java程序:整数相加 30

2.6 内存概念 33

2.7 算术运算 34

2.8 判断:相等性和关系运算符 36

2.9 小结 39

总结 39

自测题 41

自测题答案 42

练习题 44

挑战题 47

第3章 类、对象、方法与String简介 48

3.1 简介 48

3.2 实例变量、set方法和get方法 49

3.3 Account类:使用构造方法初始化对象 56

3.4 包含浮点数余额的Account类 58

3.5 基本类型与引用类型的比较 61

3.6 (选修)GUI与图形实例:一个简单的GUI 62

3.7 小结 67

总结 67

自测题 70

自测题答案 71

练习题 71

挑战题 72

第4章 控制语句(1)及赋值、++与- -运算符 73

4.1 简介 73

4.2 算法 74

4.3 伪代码 74

4.4 控制结构 74

4.5 if单选择语句 76

4.6 if...else双选择语句 77

4.7 Student类:嵌套if...else语句 79

4.8 while循环语句 81

4.9 形成算法:计数器控制循环 82

4.10 形成算法:标记控制循环 85

4.11 形成算法:嵌套控制语句 90

4.12 复合赋值运算符 93

4.13 增量运算符和减量运算符 94

4.14 基本类型 96

4.15 (选修)GUI与图形实例:事件处理、画线 96

4.16 小结 104

总结 104

自测题 107

自测题答案 108

练习题 109

挑战题 113

第5章 控制语句(2)及逻辑运算符 115

5.1 简介 115

5.2 计数器控制循环的实质 116

5.3 for循环语句 116

5.4 使用for语句的示例 119

5.5 do...while循环语句 122

5.6 switch多选择语句 123

5.7 AutoPolicy类实例:switch语句中的字符串 127

5.8 break和continue语句 130

5.9 逻辑运算符 131

5.10 结构化编程小结 135

5.11 (选修)GUI与图形实例:绘制矩形和椭圆 138

5.12 小结 141

总结 141

自测题 143

自测题答案 144

练习题 145

挑战题 148

第6章 方法:深入探究 149

6.1 简介 149

6.2 Java中的程序单元 150

6.3 静态方法、静态字段和Math类 151

6.4 声明多参数方法 152

6.5 关于声明与使用方法的说明 155

6.6 方法调用栈与活动记录 156

6.7 实参提升与强制转换 157

6.8 Java API包 158

6.9 案例分析:安全的随机数生成方法 159

6.10 案例分析:机会游戏与enum类型 162

6.11 声明的作用域 165

6.12 方法重载 167

6.13 (选修)GUI与图形实例:颜色和填充图形 169

6.14 小结 171

总结 171

自测题 174

自测题答案 175

练习题 176

挑战题 180

第7章 数组与ArrayList 181

7.1 简介 182

7.2 数组 182

7.3 声明和创建数组 183

7.4 数组使用举例 184

7.5 异常处理:处理不正确的反馈值 190

7.6 案例分析:模拟洗牌和发牌 191

7.7 增强型for语句 194

7.8 将数组传入方法 195

7.9 按值传递与按引用传递 196

7.10 案例分析:GradeBook类用数组保存成绩 197

7.11 多维数组 201

7.12 案例分析:使用二维数组的GradeBook类 203

7.13 变长实参表 207

7.14 使用命令行实参 208

7.15 Arrays类 210

7.16 集合和ArrayList类简介 212

7.17 (选修)GUI与图形实例:画圆弧 214

7.18 小结 216

总结 216

自测题 219

自测题答案 219

练习题 220

拓展内容:建立自己的计算机 227

挑战题 231

第8章 类与对象:深入探究 233

8.1 简介 233

8.2 Time类案例分析 234

8.3 对成员的访问控制 237

8.4 用this引用访问当前对象的成员 237

8.5 Time类案例分析:重载构造方法 239

8.6 默认构造方法与无实参构造方法 243

8.7 set方法和get方法 243

8.8 组合 244

8.9 enum类型 246

8.10 垃圾回收 248

8.11 静态类成员 249

8.12 静态导入 251

8.13 final实例变量 252

8.14 包访问 253

8.15 将BigDecimal用于精确的货币计算 254

8.16 (选修)GUI与图形实例:使用包含图形的对象 255

8.17 小结 258

总结 258

自测题 261

自测题答案 261

练习题 261

挑战题 264

第9章 面向对象编程:继承 265

9.1 简介 265

9.2 超类与子类 266

9.3 protected成员 267

9.4 超类与子类的关系 268

9.5 子类的构造方法 282

9.6 Object类 283

9.7 比较组合和继承的差异 283

9.8 小结 285

总结 285

自测题 286

自测题答案 286

练习题 286

第10章 面向对象编程:多态和接口 289

10.1 简介 289

10.2 多态示例 290

10.3 演示多态行为 291

10.4 抽象类和抽象方法 293

10.5 案例分析:使用多态的工资系统 295

10.6 超类和子类变量之间允许的赋值 305

10.7 final方法和final类 305

10.8 分析从构造方法调用方法时的问题 306

10.9 创建和使用接口 306

10.10 Java SE 8的接口强化 312

10.11 Java SE 9的私有接口方法 313

10.12 私有构造方法 314

10.13 使用接口继承而非实现继承 314

10.14 (选修)GUI与图形实例:利用多态性画图 316

10.15 小结 317

总结 318

自测题 320

自测题答案 321

练习题 321

挑战题 322

第11章 异常处理:深入探究 323

11.1 简介 323

11.2 示例:除数为0时没有处理异常 324

11.3 示例:处理ArithmeticException异常和InputMismatchException 异常 326

11.4 何时使用异常处理 330

11.5 Java异常层次 330

11.6 finally语句块 332

11.7 栈解退和从异常获得信息 336

11.8 链式异常 338

11.9 声明新的异常类型 339

11.10 前置条件和后置条件 340

11.11 断言 340

11.12 try-with-resources:自动释放资源 341

11.13 小结 342

总结 343

自测题 345

自测题答案 345

练习题 346

第12章 JavaFX GUI(1) 347

12.1 简介 347

12.2 JavaFX Scene Builder 348

12.3 JavaFX程序窗口的结构 349

12.4 Welcome程序――显示文本和图像 350

12.5 Tip Calculator程序――事件处理 353

12.6 后续有关JavaFX章节中的主题 365

12.7 小结 365

总结 366

自测题 369

自测题答案 370

练习题 370

挑战题 370

第13章 JavaFX GUI(2) 372

13.1 简介 372

13.2 在场景图中布局节点 373

13.3 Painter程序:RadioButton、鼠标事件和形体 374

13.4 Color Chooser程序:属性绑定和属性监听器 381

13.5 Cover Viewer程序:数据驱动的GUI及JavaFX集合 386

13.6 Cover Viewer程序:定制ListView单元格 389

13.7 其他JavaFX功能 392

13.8 JavaFX 9:Java SE 9 JavaFX的更新 394

13.9 小结 395

总结 395

自测题 400

自测题答案 401

练习题 401

第14章 字符串、字符与正则表达式 402

14.1 简介 402

14.2 字符和字符串基础 403

14.3 String类 403

14.4 StringBuilder类 413

14.5 Character类 418

14.6 标记化String 421

14.7 正则表达式及Pattern类和Matcher类 422

14.8 小结 427

总结 428

自测题 430

自测题答案 431

练习题 431

拓展内容:字符串操作练习题 432

拓展内容:处理字符串的挑战项目 434

挑战题 435

第15章 文件、输入/输出流、NIO与XML序列化 436

15.1 简介 436

15.2 文件和流 437

15.3 使用NIO类和接口来获得文件和目录信息 438

15.4 顺序文本文件 440

15.5 XML序列化 447

15.6 FileChooser和DirectoryChooser对话框 452

15.7 (选修)其他的java.io类 456

15.8 小结 458

总结 458

自测题 461

自测题答案 462

练习题 462

挑战题 464

第16章 泛型集合 465

16.1 简介 465

16.2 集合概述 466

16.3 类型包装器类 467

16.4 自动装箱和自动拆箱 467

16.5 Collection接口和Collections类 467

16.6 List 468

16.7 Collections方法 473

16.8 PriorityQueue类和Queue接口 481

16.9 Set 482

16.10 Map 484

16.11 同步集合 487

16.12 不可修改集合 487

16.13 抽象实现 488

16.14 Java SE 9:用于不可变集合的便利工厂方法 488

16.15 小结 490

总结 491

自测题 493

自测题答案 493

练习题 494

第17章 lambda与流 496

17.1 简介 497

17.2 流和聚合 498

17.3 映射和lambda 500

17.4 过滤 503

17.5 元素如何在流管道中移动 504

17.6 方法引用 505

17.7 IntStream操作 507

17.8 函数式接口 510

17.9 lambda:深入探究 511

17.10 Stream<Integer>操作 512

17.11 Stream<String>操作 515

17.12 Stream<Employee>操作 516

17.13 根据文件创建Stream<String> 524

17.14 随机值流 526

17.15 无限流 528

17.16 lambda事件处理器 529

17.17 关于Java SE 8接口的更多说明 529

17.18 小结 530

总结 530

自测题 536

自测题答案 537

练习题 538

第18章 递归 541

18.1 简介 541

18.2 递归概念 542

18.3 使用递归示例:阶乘 542

18.4 利用BigInteger重新实现FactorialCalculator类 544

18.5 使用递归示例:Fibonacci序列 545

18.6 递归与方法调用栈 547

18.7 递归与迭代的比较 548

18.8 汉诺塔 550

18.9 分形 551

18.10 递归回溯 559

18.11 小结 559

总结 560

自测题 561

自测题答案 562

练习题 562

第19章 搜索、排序与大O记法 566

19.1 简介 566

19.2 线性搜索 567

19.3 大O记法 569

19.4 二分搜索 570

19.5 排序算法 573

19.6 选择排序 574

19.7 插入排序 576

19.8 合并排序 578

19.9 本章的搜索和排序算法的效率小结 582

19.10 大规模并行处理与并行算法 583

19.11 小结 583

总结 583

自测题 585

自测题答案 585

练习题 585

挑战题 587

第20章 泛型类和泛型方法:深入探究 588

20.1 简介 588

20.2 泛型方法的由来 588

20.3 泛型方法:实现及编译时翻译 590

20.4 其他编译时翻译问题:将类型参数用作返回类型的方法 592

20.5 重载泛型方法 594

20.6 泛型类 595

20.7 接收类型参数的方法中的通配符 599

20.8 小结 602

总结 602

自测题 604

自测题答案 604

练习题 604

第21章 定制泛型数据结构 606

21.1 简介 606

21.2 自引用类 607

21.3 动态内存分配 607

21.4 链表 608

21.5 栈 617

21.6 队列 620

21.7 树 621

21.8 小结 626

总结 626

自测题 628

自测题答案 629

练习题 629

拓展内容:建立自己的编译器 634

第22章 JavaFX图形与多媒体 644

22.1 简介 644

22.2 利用CSS控制字体 645

22.3 显示二维形体 650

22.4 Polyline、Polygon和Path 654

22.5 变换 658

22.6 利用Media、MediaPlayer和MediaViewer播放视频 659

22.7 Transition动画 664

22.8 Timeline动画 668

22.9 利用AnimationTimer实现逐帧动画 670

22.10 在Canvas上绘图 671

22.11 三维形体 675

22.12 小结 678

总结 678

自测题 683

自测题答案 684

练习题 684

第23章 并发性 691

23.1 简介 691

23.2 线程状态与生命周期 693

23.3 用Executor框架创建并执行线程 695

23.4 线程同步 698

23.5 没有同步的生产者/消费者关系 704

23.6 生产者/消费者关系:ArrayBlockingQueue 710

23.7 (进阶)具有synchronized、wait、notify及notifyAll的生产者/消费者关系 712

23.8 (进阶)生产者/消费者关系:有界缓冲区 716

23.9 (进阶)生产者/消费者关系:Lock接口和Condition接口 722

23.10 并发集合 727

23.11 JavaFX中的多线程 728

23.12 利用Java SE 8的日期/时间API为sort/parallelSort计时 737

23.13 Java SE 8:串行流与并行流 739

23.14 (进阶)Callable接口和Future接口 740

23.15 (进阶)Fork/Join框架 744

23.16 小结 744

总结 745

自测题 750

自测题答案 751

练习题 752

第24章 利用JDBC访问数据库 754

24.1 简介 755

24.2 关系数据库 755

24.3 books数据库 756

24.4 SQL 759

24.5 设置Java DB数据库 764

24.6 连接并查询数据库 766

24.7 查询books数据库 769

24.8 RowSet接口 778

24.9 PreparedStatement 780

24.10 存储过程 788

24.11 事务处理 789

24.12 小结 789

总结 790

自测题 794

自测题答案 794

练习题 794

第25章 JShell简介:Java SE 9中用于交互式Java的REPL 797

25.1 简介 798

25.2 安装JDK 9 799

25.3 JShell简介 799

25.4 JShell中的命令行输入 807

25.5 声明并使用类 808

25.6 JShell的自动补全功能 811

25.7 探索类成员并查看文档 812

25.8 声明方法 817

25.9 异常处理 818

25.10 导入类并将包添加到CLASSPATH 819

25.11 使用外部编辑器 820

25.12 JShell命令汇总 822

25.13 代码段编辑的快捷键 826

25.14 JShell如何重新解释Java以供交互使用 827

25.15 IDE JShell支持 827

25.16 小结 827

自测题 828

自测题答案 830

在线章节 840

附录A 运算符优先级表 841

附录B ASCII字符集 843

附录C 关键字和保留字 844

附录D 基本类型 845

附录E 使用调试器 846

在线附录 856

索引 857

下载地址

立即下载

(解压密码:www.teccses.org)

Article Title:《Java大学教程(第十一版)》
Article link:https://www.teccses.org/1246148.html