图书目录

目录

第一篇入门篇

第1章职员类: 对象与类3

1.1Java类的设计4

1.1.1从现实世界到Java类代码4

1.1.2关于Java类组成的说明7

习题9

知识链接9

1.2Java类的方法设计9

1.2.1方法结构9

1.2.2方法参数10

1.2.3方法调用与方法返回10

习题13

知识链接14

1.3主方法与类的测试14

1.3.1对象生成的过程14

1.3.2构造器16

1.3.3对象成员的访问17

1.3.4主方法与主类17

1.3.5在Eclipse中测试Employee类18

1.3.6主方法必须作为一个类的成员18

习题20

知识链接21

1.4内容扩展21

1.4.1this关键字21

1.4.2方法参数的传递23

1.4.3数据域的封装24

1.5本章小结25

习题26

知识链接28第2章算术计算器类: 流程控制结构29

2.1二项式算术计算器类29

2.1.1计算器类设计29

2.1.2变量与赋值运算符 30

2.1.3算术运算符33

2.1.4表达式与运算规则33

习题34

知识链接35

2.2二项式算术计算器类的测试35

2.2.1Calculator类的测试主函数35

2.2.2从键盘输入测试数据36

2.2.3用选择结构规避被零除风险37

2.2.4用异常处理规避被零除风险39

习题42

知识链接43

2.3能自动识别计算类型的二项式计算器类43

2.3.1用ifelse选择结构实现calculate()方法43

2.3.2用switch选择结构实现calculate()方法45

习题47

知识链接48

2.4用while结构实现多项式算术计算器48

2.4.1while循环结构48

2.4.2用while结构实现的多项式算术计算器48

习题49

2.5内容扩展50

2.5.1逻辑运算符50

2.5.2抛出异常52

2.5.3实例学习——有理数的类封装54

2.6本章小结58

习题58第3章算法基础: 穷举、迭代与递归60

3.1素数序列产生器60

3.1.1问题描述与对象建模60

3.1.2isPrime()判定素数方法的实现61

3.1.3PrimeGenerator类的实现64

习题67

3.2阶乘计算器的迭代实现67

3.2.1问题描述与对象建模67

3.2.2FactorialCalculator类的实现68

习题69

3.3阶乘计算器的递归实现69

3.3.1什么是递归69

3.3.2阶乘的递归计算69

3.3.3用递归实现阶乘计算器70

习题71

3.4内容扩展71

3.4.1用静态成员变量记录素数的个数71

3.4.2静态成员方法——类方法74

3.4.3变量的作用域和生命期76

3.4.4基本类型打包79

3.5本章小结81

习题81

知识链接82第4章扑克游戏: 数组、字符串与ArrayList类83

4.1一维数组与扑克牌的表示和存储83

4.1.1数组的概念83

4.1.2数组的声明与内存分配83

4.1.3数组的初始化85

4.1.4访问一维数组86

习题89

4.2洗牌方法90

4.2.1随机数与Random类90

4.2.2洗牌方法设计91

4.2.3含有洗牌方法的扑克游戏类设计93

4.2.4一维数组和方法94

4.2.5排序与查找96

习题98

知识链接99

4.3扑克的发牌与二维数组99

4.3.1基本的发牌算法99

4.3.2用二维数组表示玩家手中的牌100

4.3.3使用二维数组的发牌方法103

4.3.4含有洗牌、发牌方法的扑克游戏类设计103

4.3.5二维数组和方法105

习题106

4.4字符串107

4.4.1String类型107

4.4.2用字符串数组存储纸牌107

4.4.3不可变字符串与可变字符串110

习题112

知识链接113

4.5对象数组与ArrayList类113

4.5.1将纸牌抽象成类113

4.5.2用对象数组存储纸牌114

4.5.3ArrayList类117

习题122

4.6本章小结122

习题122

知识链接123第5章类的继承124

5.1类的复用: 组合与继承124

5.1.1类的组合124

5.1.2类的继承126

5.1.3super关键字131

5.1.4继承关系下的构造方法调用132

习题135

5.2Java类层次中的信息隐藏与保护137

5.2.1Java类层次中类的访问权限控制137

5.2.2类成员的访问权限控制137

5.2.3private构造器138

5.2.4final关键字140

习题141

5.3类层次中的类型转换142

5.3.1类层次中的赋值兼容规则142

5.3.2类型转换与类型测试143

习题144

5.4类层次中方法覆盖与隐藏145

5.4.1派生类实例方法覆盖基类中签名相同的实例方法145

5.4.2用@Override标注覆盖146

5.4.3派生类静态方法隐藏基类中签名相同的静态方法148

习题149

5.5类层次中的多态150

5.5.1继承关系下的多态150

5.5.2JVM的静态绑定与动态绑定151

习题153

5.6内容扩展155

5.6.1Object类155

5.6.2Java异常类和错误类体系159

5.6.3用户自定义异常161

5.6.4实例学习——两点成线162

5.7本章小结165

习题166

知识链接167第6章抽象类与接口168

6.1圆、三角形和矩形168

6.1.13个独立的类: Circle、Rectangle和Triangle168

6.1.2枚举170

习题172

6.2抽象类173

6.2.1由具体类抽象出抽象类173

6.2.2由抽象类派生出实例类175

6.2.3抽象类小结179

习题179

知识链接180

6.3接口180

6.3.1接口及其特点180

6.3.2接口的实现类182

6.3.3接口之间的继承184

6.3.4基于接口的动态绑定185

6.3.5接口的default方法和static方法185

习题187

知识链接188

6.4本章小结188

习题189

第二篇应用篇第7章输入/输出流与对象序列化193

7.1File 类193

习题196

7.2流196

7.2.1流的基本概念196

7.2.2流的分类197

习题198

7.3字节流与字符流198

7.3.1字节流199

7.3.2字符流203

习题206

知识链接207

7.4缓冲流与转换流207

7.4.1缓冲流207

7.4.2转换流209

习题211

7.5打印流212

7.5.1PrintStream类212

7.5.2PrintWriter类213

习题215

知识链接215

7.6对象序列化216

7.6.1对象序列化概念216

7.6.2序列化和反序列化步骤216

习题219

7.7本章小结219

习题220

知识链接220第8章Java网络程序设计221

8.1IP地址与InetAddress类221

8.1.1IP协议与IP地址221

8.1.2InetAddress类222

习题223

8.2Java Socket概述223

8.2.1Socket的概念223

8.2.2客户端/服务器工作模式224

习题225

8.3面向TCP的Java Socket程序设计225

8.3.1Socket类和ServerSocket类225

8.3.2TCP Socket通信过程227

8.3.3TCP Socket 程序设计227

习题231

知识链接232

8.4面向UDP的Java程序设计232

8.4.1DatagramPacket类233

8.4.2DatagramSocket类234

8.4.3UDP Socket程序设计237

习题240

8.5网络资源访问240

8.5.1URI、URL和URN240

8.5.2URL类242

8.5.3URLConnection类244

习题246

知识链接246

8.6本章小结246

习题246第9章图形用户界面开发247

9.1JavaFX基础247

9.1.1JavaFX程序的基本结构247

9.1.2舞台和场景249

9.1.3场景图和节点250

9.1.4Java坐标系250

习题250

知识链接252

9.2布局面板252

9.2.1Pane252

9.2.2FlowPane254

9.2.3GridPane256

9.2.4BorderPane257

9.2.5StackPane259

9.2.6HBox和VBox261

习题263

知识链接264

9.3事件驱动编程基础264

9.3.1事件概述264

9.3.2事件类266

9.3.3事件处理流程268

习题270

9.4事件处理器270

9.4.1内部类处理器271

9.4.2匿名内部类处理器273

9.4.3Lambda表达式处理器275

习题276

知识链接277

9.5常用UI组件277

习题283

知识链接284

9.6本章小结284

习题284第10章JDBC数据库编程286

10.1JDBC概述286

10.1.1JDBC的组成与工作过程286

10.1.2JDBC API及其对JDBC过程的支持287

习题288

10.2加载JDBC驱动289

10.2.1JDBC数据库驱动程序的类型289

10.2.2JDBC驱动类名与JDBC驱动程序的下载291

10.2.3DriverManager类292

10.2.4注册Driver293

习题296

10.3连接数据源297

10.3.1数据源描述规则——JDBC URL297

10.3.2获取Connection对象297

10.3.3连接过程中的异常处理302

10.3.4Connection接口的常用方法302

习题303

知识链接303

10.4创建SQL工作空间进行数据库操作303

10.4.1SQL303

10.4.2创建SQL工作空间306

10.4.3用Statement实例封装SQL语句307

习题310

10.5处理结果集311

10.5.1结果集游标的管理311

10.5.2getXxx()方法311

10.5.3updateXxx()方法312

10.5.4关闭数据库连接312

10.5.5JDBC数据库查询实例312

习题314

10.6PreparedStatement接口315

10.6.1用PreparedStatement实例封装SQL语句的特点315

10.6.2PreparedStatement接口的主要方法316

10.6.3PreparedStatement对象操作SQL语句的步骤316

习题320

知识链接321

10.7事务处理322

10.7.1事务的概念322

10.7.2Connection类中有关事务处理的方法322

10.7.3JDBC事务处理程序的基本结构323

习题324

10.8DAO模式325

10.8.1DAO概述325

10.8.2DAO模式的基本结构326

10.8.3DAO程序举例328

习题335

知识链接336

10.9本章小结336

习题336

知识链接337

第三篇晋级篇第11章设计模式341

11.1设计模式概述341

11.1.1什么是设计模式341

11.1.2为什么要学习设计模式341

11.1.3设计模式的分类342

习题343

知识链接344

11.2简单工厂模式344

11.2.1简单工厂模式的定义344

11.2.2简单工厂模式的结构345

11.2.3简单工厂模式实例345

11.2.4简单工厂模式的优点和缺点347

11.2.5简单工厂模式的适用场景349

习题349

知识链接349

11.3工厂方法模式350

11.3.1工厂方法模式的定义350

11.3.2工厂方法模式的结构350

11.3.3工厂方法模式实例351

11.3.4工厂方法模式的优点和缺点352

11.3.5工厂方法模式的适用场景353

习题354

知识链接355

11.4外观模式355

11.4.1外观模式的定义355

11.4.2外观模式的结构355

11.4.3外观模式的实例356

11.4.4外观模式的优点和缺点357

11.4.5外观模式的适用场景358

习题358

知识链接359

11.5适配器模式359

11.5.1适配器模式的定义359

11.5.2适配器模式的结构360

11.5.3适配器模式的实例361

11.5.4适配器模式的优点和缺点362

11.5.5适配器模式的适用场景363

习题364

知识链接364

11.6观察者模式364

11.6.1观察者模式的定义364

11.6.2观察者模式的结构365

11.6.3观察者模式的实例366

11.6.4观察者模式的优点和缺点368

11.6.5观察者模式的适用场景369

习题369

知识链接370

11.7策略模式370

11.7.1不用策略模式的商场营销解决方案370

11.7.2策略模式的定义372

11.7.3策略模式的结构373

11.7.4采用策略模式的商场营销解决方案373

11.7.5策略模式与简单工厂模式结合377

11.7.6策略模式的优点和缺点379

11.7.7策略模式的适用场景379

习题379

知识链接380

11.8本章小结380

习题381

知识链接381第12章Java泛型编程与集合框架382

12.1泛型382

12.1.1泛型基础382

12.1.2泛型方法384

12.1.3泛型接口386

12.1.4多泛型类386

习题387

知识链接388

12.2泛型语法扩展388

12.2.1泛型通配符388

12.2.2泛型设限389

12.2.3泛型嵌套391

习题392

12.3Java集合中主要接口简介392

习题393

知识链接394

12.4Collection接口及其子接口394

12.4.1Collection接口394

12.4.2List集合 395

12.4.3Set集合398

习题402

知识链接403

12.5聚集的标准输出403

12.5.1Iterator接口403

12.5.2foreach404

习题405

12.6Map接口类及其应用406

12.6.1Map接口的定义与方法406

12.6.2Map.Entry接口406

12.6.3HashMap类407

12.6.4TreeMap类409

习题410

12.7本章小结411

习题411

知识链接412第13章Java多线程413

13.1Java多线程概述413

13.1.1进程与线程413

13.1.2Java线程的生命周期及实现方式415

13.1.3Java多线程程序实例: 室友叫醒425

13.1.4线程调度与线程优先级429

习题429

知识链接431

13.2java.lang.Thread类431

13.2.1Thread类的构造器431

13.2.2Thread类中的优先级别静态常量431

13.2.3Thread类中影响线程状态的方法432

13.2.4Thread类中的一般方法432

13.2.5Thread类从Object继承的方法433

习题433

知识链接434

13.3线程池434

13.3.1线程池概念434

13.3.2Java提供的线程池434

习题438

知识链接439

13.4多线程管理439

13.4.1多线程同步共享资源439

13.4.2线程死锁问题447

13.4.3线程组447

习题448

13.5本章小结449

习题449第14章函数式编程451

14.1Lambda表达式451

14.1.1从匿名类到 Lambda 的转换451

14.1.2Lambda表达式的语法453

习题455

14.2函数式接口456

14.2.1函数式接口概述456

14.2.2自定义函数式接口457

14.2.3Java内置函数式接口459

习题463

14.3方法引用464

14.3.1方法引用分类464

14.3.2静态方法引用465

14.3.3实例方法引用466

14.3.4对象方法引用467

14.3.5构造器引用468

14.3.6数组引用469

习题470

14.4Stream470

14.4.1Stream概述470

14.4.2Stream的操作流程471

14.4.3Stream 操作472

习题480

知识链接480

14.5本章小结480

习题481附录A符号483附录BJava运行时异常类和错误类485附录CJava常用工具包488附录D知识链接二维码目录489参考文献492