• Java官方编程手册(第12版·Java 17) 上下
  • Java官方编程手册(第12版·Java 17) 上下
  • Java官方编程手册(第12版·Java 17) 上下
  • Java官方编程手册(第12版·Java 17) 上下
  • Java官方编程手册(第12版·Java 17) 上下
21年品牌 40万+商家 超1.5亿件商品

Java官方编程手册(第12版·Java 17) 上下

120 3.7折 328 八五品

仅1件

江苏南京
认证卖家担保交易快速发货售后保障

作者[美]赫伯特·希尔特(Herbert Schildt) 著;石磊 卫琳 译

出版社清华大学出版社

出版时间2023-06

版次1

装帧其他

上书时间2024-06-26

鸿业书店

七年老店
已实名 已认证 进店 收藏店铺

   商品详情   

品相描述:八五品
图书标准信息
  • 作者 [美]赫伯特·希尔特(Herbert Schildt) 著;石磊 卫琳 译
  • 出版社 清华大学出版社
  • 出版时间 2023-06
  • 版次 1
  • ISBN 9787302630760
  • 定价 328.00元
  • 装帧 其他
  • 开本 16开
  • 纸张 胶版纸
【内容简介】
《Java官方编程手册(第12版·Java 17)》针对Java SE 17全面更新内容,讲解了如何开发、编译、调试和运行Java程序。畅销书作者Herbert Schildt在本书中对整个Java语言进行了讲解,包括其语法、关键字和基础编程概念。书中还介绍了Java API库的关键部分,如I/O、集合框架、流库和并发实用工具,还讨论了Swing、Java Bean和servlet,并提供了大量示例来演示Java的实际应用。当然,本书也详细描述了Java语言的新增特性,如记录、密封类和switch表达式。Herbert Schildt采用他一贯的清晰、利落、务求准确的风格撰写本书,正是这种风格让他撰写的图书成为全世界数百万人的选择。
  本书内容
  数据类型、变量、数组和运算符
  控制语句
  类、对象和方法
  方法重载和重写
  继承
  接口和包
  异常处理
  多线程编程
  枚举、自动装箱和注解
  I/O类
  泛型
  lambda表达式
  模块
  记录
  密封类
  文本块
  switch表达式
  instanceof的模式匹配
  字符串处理
  集合框架
  网络
  事件处理
  AWT
  Swing
  并发API
  流API
  正则表达式
  Java Bean
  servlet
  其他内容
【作者简介】
Herbert Schildt 是一位畅销书作家,在三十多年的时间里,他撰写了大量关于编程的图书。Herbert 是 Java 语言领域的权威专家,被International Developer杂志称为“全世界著名的编程书籍创作者之一”。他撰写的编程书籍在世界范围内销售了数百万册,并且已经被翻译成几乎所有主要的非英语语言。
【目录】
第 I 部分  Java语言

第 1 章  Java的历史和演变 3

1.1  Java的家世 3

1.1.1  现代编程语言的诞生:

C语言 3

1.1.2  C  :下一个阶段 5

1.1.3  Java出现的时机已经成熟 5

1.2  Java的诞生 6

1.3  Java改变Internet的方式 7

1.3.1  Java applet 7

1.3.2  安全性 8

1.3.3  可移植性 8

1.4  Java的魔力:字节码 8

1.5  超越applet 9

1.6  更快的发布周期 10

1.7  servlet:服务器端的Java 11

1.8  Java的关键特性 11

1.8.1  简单性 11

1.8.2  面向对象 12

1.8.3  健壮性 12

1.8.4  多线程 12

1.8.5  体系结构中立 12

1.8.6  解释执行和高性能 13

1.8.7  分布式 13

1.8.8  动态性 13

1.9  Java的演变历程 13

1.10  文化革新 17

第2 章  Java综述 18

2.1  面向对象编程 18

2.1.1  两种范式 18

2.1.2  抽象 19

2.1.3  OOP三原则 19

2.2  个简单程序 23

2.2.1  输入程序 23

2.2.2  编译程序 24

2.2.3  深入分析个示例程序 24

2.3  第二个简单程序 26

2.4  两种控制语句 28

2.4.1  if语句 28

2.4.2  for循环 29

2.5  使用代码块 30

2.6  词汇问题 32

2.6.1  空白符 32

2.6.2  标识符 32

2.6.3  字面值 32

2.6.4  注释 33

2.6.5  分隔符 33

2.6.6  Java关键字 33

2.7  Java类库 34

第3 章  数据类型、变量和数组 35

3.1  Java是强类型化的语言 35

3.2  基本类型 35

3.3  整型 36

3.3.1  byte 36

3.3.2  short 36

3.3.3  int 37

3.3.4  long 37

3.4  浮点型 38

3.4.1  float 38

3.4.2  double 38

3.5  字符型 39

3.6  布尔型 40

3.7  深入分析字面值 41

3.7.1  整型字面值 41

3.7.2  浮点型字面值 42

3.7.3  布尔型字面值 42

3.7.4  字符型字面值 43

3.7.5  字符串字面值 43

3.8  变量 44

3.8.1  变量的声明 44

3.8.2  动态初始化 44

3.8.3  变量的作用域和生存期 45

3.9  类型转换和强制类型转换 47

3.9.1  Java的自动类型转换 47

3.9.2  强制转换不兼容的类型 47

3.10  表达式中的自动类型提升 49

3.11  数组 50

3.11.1  一维数组 50

3.11.2  多维数组 52

3.11.3  另一种数组声明语法 56

3.12  局部变量的类型推断 57

3.13  关于字符串的一些说明 59

第4章  运算符 60

4.1  算术运算符 60

4.1.1  基本算术运算符 61

4.1.2  求模运算符 62

4.1.3  算术与赋值复合运算符 62

4.1.4  自增与自减运算符 63

4.2  位运算符 64

4.2.1  位逻辑运算符 66

4.2.2  左移 68

4.2.3  右移 69

4.2.4  无符号右移 70

4.2.5  位运算符与赋值的组合 71

4.3  关系运算符 72

4.4  布尔逻辑运算符 73

4.5  赋值运算符 75

4.6  “?”运算符 75

4.7  运算符的优先级 76

4.8  使用圆括号 77

第 5 章  控制语句 78

5.1  Java的选择语句 78

5.1.1  if语句 78

5.1.2  switch语句 81

5.2  迭代语句 86

5.2.1  while语句 86

5.2.2  do-while语句 87

5.2.3  for语句 90

5.2.4  for循环的for-each版本 93

5.2.5  for循环中的局部变量

类型推断 98

5.2.6  嵌套的循环 99

5.3  跳转语句 99

5.3.1  使用break语句 99

5.3.2  使用continue语句 103

5.3.3  使用return语句 104

第 6 章  类 106

6.1  类的基础知识 106

6.1.1  类的一般形式 106

6.1.2  一个简单的类 107

6.2  声明对象 109

6.3  为对象引用变量赋值 111

6.4  方法 112

6.4.1  为Box类添加方法 112

6.4.2  返回值 114

6.4.3  添加带参数的方法 115

6.5  构造函数 117

6.6  this关键字 120

6.7  垃圾回收 121

6.8  堆栈类 121

第 7 章  方法和类的深入分析 124

7.1  重载方法 124

7.2  将对象用作形参 129

7.3  实参传递的深入分析 131

7.4  返回对象 133

7.5  递归 134

7.6  访问控制 136

7.7  理解static 139

7.8  final介绍 141

7.9  重新审视数组 141

7.10  嵌套类和内部类 143

7.11  String类 145

7.12  使用命令行参数 148

7.13  varargs:可变长度实参 148

7.13.1  重载varargs方法 151

7.13.2  varargs方法与模糊性 152

第 8 章  继承 156

8.1  继承的基础知识 156

8.1.1  成员访问与继承 158

8.1.2  一个更实际的例子 159

8.1.3  超类变量可以引用子类

对象 161

8.2  使用super关键字 161

8.2.1  使用super调用超类的

构造函数 162

8.2.2  super的另一种用法 165

8.3  创建多级继承层次 166

8.4  构造函数的执行时机 169

8.5  方法重写 170

8.6  动态方法调度 172

8.6.1  重写方法的原因 174

8.6.2  应用方法重写 174

8.7  使用抽象类 176

8.8  在继承中使用final关键字 178

8.8.1  使用final关键字阻止

重写 178

8.8.2  使用final关键字阻止

继承 179

8.9  局部变量类型推断和继承 179

8.10  Object类 181

第9章  包和接口 182

9.1  包 182

9.1.1  定义包 182

9.1.2  包查找与CLASSPATH 183

9.1.3  一个简短的包示例 184

9.2  包和成员访问 185

9.3  导入包 188

9.4  接口 190

9.4.1  定义接口 191

9.4.2  实现接口 192

9.4.3  嵌套接口 194

9.4.4  应用接口 195

9.4.5  接口中的变量 198

9.4.6  接口可以扩展 200

9.5  默认接口方法 201

9.5.1  默认方法的基础知识 201

9.5.2  一个更实用的例子 203

9.5.3  多级继承的问题 203

9.6  在接口中使用静态方法 204

9.7  私有接口方法 205

9.8  关于包和接口的后说明 206

第 10 章  异常处理 207

10.1  异常处理的基础知识 207

10.2  异常类型 208

10.3  未捕获的异常 209

10.4  使用try和catch 210

10.5  多条catch子句 211

10.6  嵌套的try语句 213

10.7  throw 215

10.8  throws 216

10.9  finally 217

10.10  Java的内置异常 219

10.11  创建自己的异常子类 220

10.12  链式异常 222

10.13  其他三个异常特性 224

10.14  使用异常 225

第11章  多线程编程 226

11.1  Java线程模型 227

11.1.1  线程优先级 228

11.1.2  同步 228

11.1.3  消息传递 228

11.1.4  Thread类和Runnable

接口 229

11.2  主线程 229

11.3  创建线程 231

11.3.1  实现Runnable接口 231

11.3.2  扩展Thread类 233

11.3.3  选择一种创建方式 234

11.4  创建多个线程 234

11.5  使用isAlive()和join()方法 236

11.6  线程优先级 238

11.7  同步 239

11.7.1  使用同步方法 239

11.7.2  synchronized语句 241

11.8  线程间通信 243

11.9  挂起、恢复与停止线程 249

11.10  获取线程的状态 252

11.11  使用工厂方法创建和启动

线程 253

11.12  使用多线程 254

第 12 章  枚举、自动装箱与注解 255

12.1  枚举 255

12.1.1  枚举的基础知识 255

12.1.2  values()和valueOf()

方法 257

12.1.3  Java枚举是类类型 259

12.1.4  枚举继承自Enum类 260

12.1.5  另一个枚举示例 262

12.2  类型封装器 264

12.2.1  Character封装器 264

12.2.2  Boolean封装器 264

12.2.3  数值类型封装器 265

12.3  自动装箱 266

12.3.1  自动装箱与方法 267

12.3.2  表达式中发生的自动

装箱/拆箱 268

12.3.3  布尔型和字符型数值的

自动装箱/拆箱 269

12.3.4  自动装箱/拆箱有助于

防止错误 270

12.3.5  一些警告 271

12.4  注解 271

12.4.1  注解的基础知识 271

12.4.2  指定保留策略 272

12.4.3  在运行时使用反射获取

注解 273

12.4.4  AnnotatedElement接口 278

12.4.5  使用默认值 278

12.4.6  标记注解 279

12.4.7  单成员注解 280

12.4.8  内置注解 282

12.5  类型注解 284

12.6  重复注解 288

12.7  一些限制 289

第 13 章  I/O、带资源的try语句

以及其他主题 290

13.1  I/O的基础知识 290

13.1.1  流 290

13.1.2  字节流和字符流 291

13.1.3  预定义流 293

13.2  读取控制台输入 293

13.2.1  读取字符 294

13.2.2  读取字符串 295

13.3  向控制台写输出 297

13.4  PrintWriter类 297

13.5  读/写文件 298

13.6  自动关闭文件 304

13.7  transient和volatile修饰符 307

13.8  使用instanceof运算符 308

13.9  strictfp 310

13.10  本地方法 311

13.11  使用assert 311

13.12  静态导入 314

13.13  通过this()调用重载的构造

函数 316

13.14  基于值的类 318

第14章  泛型 319

14.1  什么是泛型 319

14.2  一个简单的泛型示例 320

14.2.1  泛型只使用引用类型 323

14.2.2  基于不同类型参数的

泛型类型是不同的 324

14.2.3  泛型提升类型安全性的

原理 324

14.3  带两个类型参数的泛型类 326

14.4  泛型类的一般形式 327

14.5  有界类型 328

14.6  使用通配符参数 330

14.7  创建泛型方法 337

14.8  泛型接口 340

14.9  原始类型与遗留代码 342

14.10  泛型类层次 344

14.10.1  使用泛型超类 345

14.10.2  泛型子类 346

14.10.3  泛型层次中的运行时

类型比较 348

14.10.4  强制转换 350

14.10.5  重写泛型类的方法 350

14.11  泛型的类型推断 351

14.12  局部变量类型推断和泛型 352

14.13  擦除 353

14.14  模糊性错误 355

14.15  使用泛型的一些限制 356

14.15.1  不能实例化类型参数 356

14.15.2  对静态成员的一些

限制 356

14.15.3  对泛型数组的一些

限制 357

14.15.4  对泛型异常的限制 358

第15 章  lambda表达式 359

15.1  lambda表达式简介 359

15.1.1  lambda表达式的基础

知识 360

15.1.2  函数式接口 360

15.1.3  几个lambda表达式

示例 361

15.2  块lambda表达式 365

15.3  泛型函数式接口 366

15.4  作为参数传递的lambda

表达式 368

15.5  lambda表达式与异常 370

15.6  lambda表达式和变量捕获 372

15.7  方法引用 373

15.7.1  静态方法的方法引用 373

15.7.2  实例方法的方法引用 374

15.7.3  泛型中的方法引用 378

15.8  构造函数引用 380

15.9  预定义的函数式接口 385

第 16 章  模块 387

16.1  模块基础知识 387

16.1.1  简单的模块示例 388

16.1.2  编译并运行个模块

示例 392

16.1.3  详述requires和exports 393

16.2  java.base和平台模块 393

16.3  旧代码和未命名的模块 394

16.4  导出到特定的模块 395

16.5  使用requires transitive 396

16.6  使用服务 400

16.6.1  服务和服务提供程序的

基础知识 400

16.6.2  基于服务的关键字 401

16.6.3  基于模块的服务示例 401

16.7  模块图 407

16.8  三个特殊的模块特性 408

16.8.1  开放模块 408

16.8.2  opens语句 408

16.8.3  requires static 408

16.9  jlink工具和模块JAR文件

介绍 409

16.9.1  链接exploded directory中

的文件 409

16.9.2  链接模块化的JAR

文件 409

16.9.3  JMOD文件 410

16.10  层与自动模块简述 410

16.11  小结 411

第 17 章  switch表达式、记录以及其他

新近添加的特性 412

17.1  switch的增强 412

17.1.1  使用case常量列表 414

17.1.2  switch表达式和yield

语句简介 415

17.1.3  case语句中的箭头 416

17.1.4  深入介绍箭头case 418

17.1.5  另外一个switch表达式

示例 420

17.2  文本块 421

17.2.1  文本块的基础知识 421

17.2.2  理解前导空格 422

17.2.3  在文本块中使用双引号 424

17.2.4  文本块中的转义序列 424

17.3  记录 425

17.3.1  记录的基础知识 425

17.3.2  创建记录构造函数 427

17.3.3  另外一个记录构造函数

示例 431

17.3.4  创建记录的getter方法 432

17.4  instanceof的模式匹配 434

17.4.1  逻辑AND表达式中的

模式变量 435

17.4.2  其他语句中的模式匹配 436

17.5  密封类和密封接口 437

17.5.1  密封类 437

17.5.2  密封接口 438

17.6  未来的方向 440

第 II 部分  Java库

第18章  字符串处理 443

18.1  String类的构造函数 443

18.2  字符串的长度 445

18.3  特殊的字符串操作 446

18.3.1  字符串字面值 446

18.3.2  字符串连接 446

18.3.3  字符串和其他数据类型的

连接 447

18.3.4  字符串转换和toString()

方法 447

18.4  提取字符 449

18.4.1  charAt() 449

18.4.2  getChars() 449

18.4.3  getBytes() 450

18.4.4  toCharArray() 450

18.5  比较字符串 450

18.5.1  equals()和

equalsIgnoreCase() 450

18.5.2  regionMatches() 451

18.5.3  startsWith()和

endsWith() 451

18.5.4  equals()与== 452

18.5.5  compareTo() 452

18.6  查找字符串 454

18.7  修改字符串 455

18.7.1  substring() 455

18.7.2  concat() 456

18.7.3  replace() 457

18.7.4  trim()和strip() 457

18.8  使用valueOf()转换数据 458

18.9  改变字符串中字符的大小写 459

18.10  连接字符串 459

18.11  其他String方法 460

18.12  StringBuffer类 461

18.12.1  StringBuffer类的构造

函数 462

18.12.2  length()与capacity() 462

18.12.3  ensureCapacity() 463

18.12.4  setLength() 463

18.12.5  charAt()与setCharAt() 463

18.12.6  append() 464

18.12.7  insert() 464

18.12.8  reverse() 465

18.12.9  delete()与

deleteCharAt() 465

18.12.10  replace() 466

18.12.11  substring() 466

18.12.12  其他StringBuffer

方法 467

18.13  StringBuilder类 468

第19章  探究java.lang 469

19.1  基本类型封装器 470

19.1.1  Number 470

19.1.2  Double与Float 470

19.1.3  理解isInfinite()与

isNaN() 474

19.1.4  Byte、Short、Integer和

Long 474

19.1.5  Character 483

19.1.6  对Unicode代码点的

附加支持 485

19.1.7  Boolean 487

19.2  Void类 488

19.3  Process类 488

19.4  Runtime类 489

19.5  Runtime.Version 491

19.6  ProcessBuilder类 492

19.7  System类 494

19.7.1  使用currentTimeMillis()

为程序的执行计时 496

19.7.2  使用arraycopy()方法 496

19.7.3  环境属性 497

19.8  System.Logger和

System.LoggerFinder 498

19.9  Object类 498

19.10  使用clone()方法和

Cloneable接口 498

19.11  Class类 500

19.12  ClassLoader类 504

19.13  Math类 504

19.13.1  三角函数 504

19.13.2  指数函数 505

19.13.3  舍入函数 505

19.13.4  其他数学方法 506

19.14  StrictMath类 508

19.15  Compiler类 508

19.16  Thread类、ThreadGroup类

和Runnable接口 508

19.16.1  Runnable接口 509

19.16.2  Thread类 509

19.16.3  ThreadGroup类 511

19.17  ThreadLocal和

InheritableThreadLocal类 515

19.18  Package类 515

19.19  Module类 516

19.20  ModuleLayer类 517

19.21  RuntimePermission类 517

19.22  Throwable类 517

19.23  SecurityManager类 518

19.24  StackTraceElement类 518

19.25  StackWalker类和

StackWalker.StackFrame

接口 518

19.26  Enum类 519

19.27  Record类 519

19.28  ClassValue类 519

19.29  CharSequence接口 520

19.30  Comparable接口 520

19.31  Appendable接口 520

19.32  Iterable接口 521

19.33  Readable接口 521

19.34  AutoCloseable接口 522

19.35  Thread.UncaughtException

Handler接口 522

19.36  java.lang子包 522

19.36.1  java.lang.annotation 522

19.36.2  java.lang.constant 523

19.36.3  java.lang.instrument 523

19.36.4  java.lang.invoke 523

19.36.5  java.lang.management 523

19.36.6  java.lang.module 523

19.36.7  java.lang.ref 523

19.36.8  java.lang.reflect 523

第20章  java.util部分:集合

框架 524

20.1  集合概述 525

20.2  集合接口 526

20.2.1  Collection接口 527

20.2.2  List接口 529

20.2.3  Set接口 531

20.2.4  SortedSet接口 532

20.2.5  NavigableSet接口 532

20.2.6  Queue接口 533

20.2.7  Deque接口 534

20.3  集合类 536

20.3.1  ArrayList类 536

20.3.2  LinkedList类 539

20.3.3  HashSet类 541

20.3.4  LinkedHashSet类 542

20.3.5  TreeSet类 543

20.3.6  PriorityQueue类 544

20.3.7  ArrayDeque类 545

20.3.8  EnumSet类 546

20.4  通过迭代器访问集合 547

20.4.1  使用迭代器 548

20.4.2  使用for-each循环替代

迭代器 549

20.5  Spliterator 550

20.6  在集合中存储用户定义的类 553

20.7  RandomAccess接口 554

20.8  使用映射 554

20.8.1  映射接口 555

20.8.2  映射类 560

20.9  比较器 565

20.10  集合算法 573

20.11  Arrays类 578

20.12  遗留的类和接口 583

20.12.1  Enumeration接口 584

20.12.2  Vector类 584

20.12.3  Stack类 588

20.12.4  Dictionary类 590

20.12.5  Hashtable类 591

20.12.6  Properties类 594

20.12.7  使用store()和load()

方法 597

20.13  集合小结 599

第21章  java.util第二部分:更多

实用工具类 600

21.1  StringTokenizer类 600

21.2  BitSet类 602

21.3  Optional、OptionalDouble、

OptionalInt和OptionalLong 604

21.4  Date类 607

21.5  Calendar类 608

21.6  GregorianCalendar类 611

21.7  TimeZone类 613

21.8  SimpleTimeZone类 614

21.9  Locale类 615

21.10  Random类 616

21.11  Timer和TimerTask类 618

21.12  Currency类 620

21.13  Formatter类 621

21.13.1  Formatter类的构造

函数 622

21.13.2  Formatter类的方法 622

21.13.3  格式化的基础知识 623

21.13.4  格式化字符串和字符 625

21.13.5  格式化数字 625

21.13.6  格式化时间和日期 626

21.13.7  %n和%%说明符 628

21.13.8  指定小字段宽度 628

21.13.9  指定精度 629

21.13.10  使用格式标志 630

21.13.11  对齐输出 631

21.13.12  空格、 、0和(标志 631

21.13.13  逗号标志 633

21.13.14  #标志 633

21.13.15  大写选项 633

21.13.16  使用参数索引 634

21.13.17  关闭Formatter对象 635

21.13.18  printf()方法 635

21.14  Scanner类 635

21.14.1  Scanner类的构造

函数 636

21.14.2  扫描的基础知识 637

21.14.3  一些Scanner示例 639

21.14.4  设置定界符 643

21.14.5  其他Scanner特性 644

21.15  ResourceBundle、

ListResourceBundle和

PropertyResourceBundle类 645

21.16  其他实用工具类和接口 649

21.17  java.util子包 650

21.17.1  java.util.concurrent、

java.util.concurrent.atomic

和java.util.concurrent.

locks 651

21.17.2  java.util.function 651

21.17.3  java.util.jar 653

21.17.4  java.util.logging 653

21.17.5  java.util.prefs 654

21.17.6  java.util.random 654

21.17.7  java.util.regex 654

21.17.8  java.util.spi 654

21.17.9  java.util.stream 654

21.17.10  java.util.zip 654

第22章  输入/输出:探究java.io 655

22.1  I/O类和接口 655

22.2  File类 656

22.2.1  目录 659

22.2.2  使用FilenameFilter

接口 660

22.2.3  listFiles()方法 661

22.2.4  创建目录 662

22.3  AutoCloseable、Closeable和

Flushable接口 662

22.4  I/O异常 662

22.5  关闭流的两种方式 663

22.6  流类 664

22.7  字节流 664

22.7.1  InputStream类 664

22.7.2  OutputStream类 665

22.7.3  FileInputStream类 666

22.7.4  FileOutputStream类 668

22.7.5  ByteArrayInputStream类 670

22.7.6  ByteArrayOutputStream

类 672

22.7.7  过滤的字节流 673

22.7.8  缓冲的字节流 673

22.7.9  SequenceInputStream类 677

22.7.10  PrintStream类 679

22.7.11  DataOutputStream类

和DataInputStream类 681

22.7.12  RandomAccessFile类 683

22.8  字符流 683

22.8.1  Reader类 684

22.8.2  Writer类 684

22.8.3  FileReader类 685

22.8.4  FileWriter类 686

22.8.5  CharArrayReader类 687

22.8.6  CharArrayWriter类 688

22.8.7  BufferedReader类 689

22.8.8  BufferedWriter类 691

22.8.9  PushbackReader类 691

22.8.10  PrintWriter类 692

22.9  Console类 693

22.10  串行化 695

22.10.1  Serializable接口 695

22.10.2  Externalizable接口 695

22.10.3  ObjectOutput接口 696

22.10.4  ObjectOutputStream类 696

22.10.5  ObjectInput接口 697

22.10.6  ObjectInputStream类 698

22.10.7  串行化示例 699

22.11  流的优点 702

第23章  探究NIO 703

23.1  NIO类 703

23.2  NIO的基础知识 704

23.2.1  缓冲区 704

23.2.2  通道 706

23.2.3  字符集和选择器 707

23.3  NIO.2对NIO的增强 708

23.3.1  Path接口 708

23.3.2  Files类 709

23.3.3  Paths类 712

23.3.4  文件属性接口 712

23.3.5  FileSystem、FileSystems和

FileStore类 714

23.4  使用NIO系统 714

23.4.1  为基于通道的I/O

使用NIO 715

23.4.2  为基于流的I/O

使用NIO 723

23.4.3  为路径和文件系统操作

使用NIO 725

第24章  联网 734

24.1  联网的基础知识 734

24.2  java.net联网类和接口 735

24.3  InetAddress类 736

24.3.1  工厂方法 736

24.3.2  实例方法 737

24.4  Inet4Address类和

Inet6Address类 738

24.5  TCP/IP客户端套接字 738

24.6  URL类 741

24.7  URLConnection类 742

24.8  HttpURLConnection类 745

24.9  URI类 746

24.10  cookie 746

24.11  TCP/IP服务器套接字 747

24.12  数据报 747

24.12.1  DatagramSocket类 748

24.12.2  DatagramPacket类 748

24.12.3  数据报示例 749

24.13  java.net.http包 751

24.13.1  三个关键元素 751

24.13.2  一个简单的HTTP Client

示例 754

24.13.3  有关java.net.http的

进一步探讨 755

第25章  事件处理 756

25.1  两种事件处理机制 756

25.2  委托事件模型 757

25.2.1  事件 757

25.2.2  事件源 757

25.2.3  事件监听器 758

25.3  事件类 758

25.3.1  ActionEvent类 759

25.3.2  AdjustmentEvent类 760

25.3.3  ComponentEvent类 761

25.3.4  ContainerEvent类 761

25.3.5  FocusEvent类 762

25.3.6  InputEvent类 763

25.3.7  ItemEvent类 764

25.4  KeyEvent类 764

25.4.1  MouseEvent类 765

25.4.2  MouseWheelEvent类 766

25.4.3  TextEvent类 767

25.4.4  WindowEvent类 767

25.5  事件源 768

25.6  事件监听器接口 769

25.6.1  ActionListener接口 770

25.6.2  AdjustmentListener

接口 770

25.6.3  ComponentListener

接口 770

25.6.4  ContainerListener接口 770

25.6.5  FocusListener接口 770

25.6.6  ItemListener接口 770

25.6.7  KeyListener接口 771

25.6.8  MouseListener接口 771

25.6.9  MouseMotionListener

接口 771

25.6.10  MouseWheelListener

接口 771

25.6.11  TextListener接口 771

25.6.12  WindowFocusListener

接口 772

25.6.13  WindowListener接口 772

25.7  使用委托事件模型 772

25.7.1  一些重要的AWT GUI

概念 772

25.7.2  处理鼠标事件 773

25.7.3  处理键盘事件 776

25.8  适配器类 780

25.9  内部类 782

第26章  AWT介绍:使用窗口、

图形和文本 786

26.1  AWT类 787

26.2  窗口基本元素 788

26.2.1  Component类 789

26.2.2  Container类 789

26.2.3  Panel类 789

26.2.4  Window类 789

26.2.5  Frame类 789

26.2.6  Canvas类 790

26.3  使用框架窗口 790

26.3.1  设置窗口的尺寸 790

26.3.2  隐藏和显示窗口 790

26.3.3  设置窗口的标题 791

26.3.4  关闭框架窗口 791

26.3.5  paint()方法 791

26.3.6  显示字符串 791

26.3.7  设置前景色和背景色 792

26.3.8  请求重画 792

26.3.9  创建基于框架的应用

程序 793

26.4  使用图形 794

26.4.1  绘制直线 794

26.4.2  绘制矩形 794

26.4.3  绘制椭圆和圆 795

26.4.4  绘制弧形 795

26.4.5  绘制多边形 795

26.4.6  演示绘制方法 795

26.4.7  改变图形的大小 797

26.5  使用颜色 798

26.5.1  Color类的方法 799

26.5.2  设置当前图形的颜色 800

26.5.3  一个演示颜色的程序 800

26.6  设置绘图模式 801

26.7  使用字体 803

26.7.1  确定可用字体 804

26.7.2  创建和选择字体 805

26.7.3  获取字体信息 807

26.8  使用FontMetrics管理文本

输出 808

第27章  使用AWT控件、布局

管理器和菜单 812

27.1  AWT控件的基础知识 812

27.1.1  添加和移除控件 813

27.1.2  响应控件 813

27.1.3  HeadlessException异常 813

27.2  使用标签 813

27.3  使用命令按钮 815

27.4  使用复选框 819

27.5  使用复选框组 822

27.6  使用下拉列表 823

27.7  使用列表框 826

27.8  管理滚动条 829

27.9  使用TextField 832

27.10  使用TextArea 834

27.11  理解布局管理器 836

27.11.1  FlowLayout布局

管理器 837

27.11.2  BorderLayout布局

管理器 838

27.11.3  使用Insets 839

27.11.4  GridLayout布局

管理器 841

27.11.5  CardLayout布局

管理器 842

27.11.6  GridBagLayout布局

管理器 845

27.12  菜单栏和菜单 850

27.13  对话框 854

27.14  关于重写paint()方法 859

第28章  图像 860

28.1  文件格式 860

28.2  图像基础知识:创建、

加载与显示 861

28.2.1  创建Image对象 861

28.2.2  加载图像 861

28.2.3  显示图像 862

28.3  双缓冲 863

28.4  ImageProducer接口 866

28.5  ImageConsumer接口 867

28.6  ImageFilter类 870

28.6.1  CropImageFilter类 870

28.6.2  RGBImageFilter类 872

28.7  其他图像类 883

第29章  并发实用工具 884

29.1  并发API包 885

29.1.1  java.util.concurrent包 885

29.1.2  java.util.concurrent.

atomic包 886

29.1.3  java.util.concurrent.

locks包 886

29.2  使用同步对象 886

29.2.1  Semaphore类 886

29.2.2  CountDownLatch类 892

29.2.3  CyclicBarrier类 893

29.2.4  Exchanger类 896

29.2.5  Phaser类 898

29.3  使用执行器 905

29.3.1  一个简单的执行器示例 906

29.3.2  使用Callable和Future

接口 908

29.4  TimeUnit枚举 910

29.5  并发集合 911

29.6  锁 912

29.7  原子操作 915

29.8  通过Fork/Join框架进行

并行编程 916

29.8.1  主要的Fork/Join类 916

29.8.2  分而治之的策略 919

29.8.3  一个简单的Fork/Join

示例 920

29.8.4  理解并行级别带来的

影响 922

29.8.5  一个使用

RecursiveTask的

例子 925

29.8.6  异步执行任务 928

29.8.7  取消任务 928

29.8.8  确定任务的完成状态 928

29.8.9  重新启动任务 929

29.8.10  深入研究 929

29.8.11  关于Fork/Join框架的

一些提示 930

29.9  并发实用工具与Java传统

方式的比较 931

第30章  流API 932

30.1  流的基础知识 932

30.1.1  流接口 933

30.1.2  如何获得流 935

30.1.3  一个简单的流示例 935

30.2  缩减操作 938

30.3  使用并行流 941

30.4  映射 943

30.5  收集 947

30.6  迭代器和流 950

30.6.1  对流使用迭代器 950

30.6.2  使用Spliterator 951

30.7  流API中更多值得探究的

地方 954

第31章  正则表达式和其他包 955

31.1  正则表达式处理 955

31.1.1  Pattern类 955

31.1.2  Matcher类 956

31.1.3  正则表达式的语法 957

31.1.4  演示模式匹配 957

31.1.5  模式匹配的两个选项 962

31.1.6  探究正则表达式 963

31.2  反射 963

31.3  远程方法调用 967

31.4  使用java.text格式化日期和

时间 970

31.4.1  DateFormat类 970

31.4.2  SimpleDateFormat类 972

31.5  java.time的时间和日期API 974

31.5.1  时间和日期的基础知识 974

31.5.2  格式化日期和时间 975

31.5.3  解析日期和时间字符串 978

31.5.4  探究java.time包的其他

方面 979

第 III 部分  使用Swing进行GUI编程

第 32 章  Swing简介 983

32.1  Swing的起源 983

32.2  Swing的构建以AWT为

基础 984

32.3  两个关键的Swing特性 984

32.3.1  Swing组件是轻量级的 984

32.3.2  Swing支持可插入外观 984

32.4  MVC连接 985

32.5  组件与容器 985

32.5.1  组件 986

32.5.2  容器 986

32.5.3  容器窗格 987

32.6  Swing包 987

32.7  一个简单的Swing应用程序 987

32.8  事件处理 991

32.9  在Swing中绘图 994

32.9.1  绘图的基础知识 994

32.9.2  计算可绘制区域 995

32.9.3  一个绘图示例 996

第33章  探索Swing 999

33.1  JLabel与ImageIcon 999

33.2  JTextField 1001

33.3  Swing按钮 1003

33.3.1  JButton 1003

33.3.2  JToggleButton 1005

33.3.3  复选框 1007

33.3.4  单选按钮 1009

33.4  JTabbedPane 1011

33.5  JScrollPane 1014

33.6  JList 1015

33.7  JComboBox 1018

33.8  树 1020

33.9  JTable 1024

第34章  Swing菜单简介 1027

34.1  菜单的基础知识 1027

34.2  JMenuBar、JMenu和

JMenuItem概述 1028

34.2.1  JMenuBar 1029

34.2.2  JMenu 1029

34.2.3  JMenuItem 1030

34.3  创建主菜单 1031

34.4  向菜单项添加助记符和

加速键 1035

34.5  向菜单项添加图片和

工具提示 1037

34.6  使用JRadioButtonMenuItem和

JCheckBoxMenuItem 1038

34.7  创建弹出菜单 1040

34.8  创建工具栏 1043

34.9  使用动作 1045

34.10  完整演示MenuDemo

程序 1050

34.11  继续探究Swing 1057

第 IV 部分  应用Java

第35章  Java Bean 1061

35.1  Java Bean是什么 1061

35.2  Java Bean的优势 1062

35.3  内省 1062

35.3.1  属性的设计模式 1062

35.3.2  事件的设计模式 1063

35.3.3  方法与设计模式 1064

35.3.4  使用BeanInfo接口 1064

35.4  绑定属性与约束属性 1065

35.5  持久性 1065

35.6  定制器 1065

35.7  Java Bean API 1065

35.7.1  Introspector类 1067

35.7.2  PropertyDescriptor类 1067

35.7.3  EventSetDescriptor类 1067

35.7.4  MethodDescriptor类 1067

35.8  一个Bean示例 1068

第36章  servlet 1071

36.1  背景 1071

36.2  servlet的生命周期 1072

36.3  servlet开发选项 1072

36.4  使用Tomcat 1073

36.5  一个简单的servlet 1074

36.5.1  创建和编译servlet

源代码 1074

36.5.2  启动Tomcat 1075

36.5.3  启动Web浏览器并

请求servlet 1075

36.6  Servlet API 1075

36.7  jakarta.servlet包 1076

36.7.1  Servlet接口 1076

36.7.2  ServletConfig接口 1077

36.7.3  ServletContext接口 1077

36.7.4  ServletRequest接口 1078

36.7.5  ServletResponse接口 1078

36.7.6  GenericServlet类 1079

36.7.7  ServletInputStream类 1079

36.7.8  ServletOutputStream类 1079

36.7.9  servlet异常类 1079

36.8  读取servlet参数 1079

36.9  jakarta.servlet.http包 1081

36.9.1  HttpServletRequest

接口 1081

36.9.2  HttpServletResponse

接口 1082

36.9.3  HttpSession接口 1083

36.9.4  Cookie类 1084

36.9.5  HttpServlet类 1085

36.10  处理HTTP请求和响应 1086

36.10.1  处理HTTP GET

请求 1086

36.10.2  处理HTTP POST

请求 1087

36.11  使用cookie 1088

36.12  会话跟踪 1091

第 V 部分  附录

附录A  使用Java的文档注释 1095

附录B  JShell简介 1103

附录C  在一个步骤中编译和运行

简单的单文件程序 1112

 

 
点击展开 点击收起

—  没有更多了  —

以下为对购买帮助不大的评价

此功能需要访问孔网APP才能使用
暂时不用
打开孔网APP