好书推荐 好书速递 排行榜 读书文摘

Java程序设计语言

Java程序设计语言
作者:[美] Ken Arnold, James Gosling, David Holmes
译者:陈昊鹏 / 章程 / 张思博 / 李楠
出版社:人民邮电出版社
出版年:2006-11
ISBN:9787115152978
行业:计算机
浏览数:128

内容简介

《Java 程序设计语言(第4版)》主要讲授Java程序设计语言,系统地介绍Java的主要包(即java.lang.*、java.util和java.io)中的大多数类,并以内容丰富的示例对这些类如何工作进行了深入剖析。作者对这部经典著作进行更新,使其反映了Java 2标准版5.0(J2SE 5.0)中主要的增强。本版中增加了几章新内容,专门讨论泛型、枚举以及注解(这些是5.0版引入的主要的新特性),并且加了几小节论述断言和正则表达式。《Java 程序设计语言(第4版)》经过更新后还结合了当今构建健壮、高效和可维护的Java软件的最佳实践。

《Java 程序设计语言(第4版)》对所有程序员(包括那些经验丰富的程序员在内)都是不可或缺的参考书。

......(更多)

作者简介

Ken Arnold 曾任 Sun 公司研究中心的高级工程师,是面向对象设计与实现方面首屈一指的专家。他曾经是 Jini 技术的架构师之一、 Sun 公司 JavaSpaces 技术的首席工程师。

James Gosling 是 Sun 公司院士和该公司开发平台组( Developer Platform Group )的 CTO 。他设计了 Java 程序设计语言,实现了最初的 Java 编译器和虚拟机,最近他正致力于 Java 实时规范( Real-Time Specification for Java )的相关工作。他是计算机界最受尊敬的程序员之一,曾荣获 Software Development 杂志评选的“程序设计杰出大奖”(1996 年)。

David Holmes 是澳大利亚布里斯班的 DLTech 公司的董事。他专攻同步与并发问题,是开发了最新的 Java 并发工具的 JSR-166 专家组的成员。他还参与了 Java 实时规范的修订工作,在过去的几年中他一直致力于该规范的实现工作。

......(更多)

目录

第1章 快速浏览 1

1.1 开始 1

1.2 变量 2

1.3 代码中的注释 4

1.4 具名常量 5

1.5 Unicode字符 6

1.6 控制流 6

1.7 类和对象 8

1.7.1 创建对象 9

1.7.2 静态字段 (类字段) 10

1.7.3 垃圾回收器 10

1.8 方法和参数 10

1.8.1 调用方法 11

1.8.2 this引用 11

1.8.3 静态方法 (类方法) 12

1.9 数组 12

1.10 字符串对象 14

1.11 扩展一个类 16

1.11.1 调用超类的方法 17

1.11.2 Object类 18

1.11.3 类型强制转换 18

1.12 接口 18

1.13 泛型类型 20

1.14 异常 22

1.15 注解 23

1.16 包 24

1.17 Java平台 25

1.18 其他主题概述 26

第2章 类与对象 27

2.1 一个简单的类 27

2.1.1 类成员 28

2.1.2 类修饰符 28

2.2 字段 28

2.2.1 字段的初始化 29

2.2.2 静态字段 29

2.2.3 final字段 30

2.3 访问控制 31

2.4 创建对象 32

2.5 构造与初始化 32

2.5.1 构造器 33

2.5.2 初始化块 35

2.5.3 静态初始化 36

2.6 方法 37

2.6.1 静态方法 37

2.6.2 方法调用 38

2.6.3 引元数量可变的方法 39

2.6.4 方法异常与返回 40

2.6.5 参数值 41

2.6.6 使用方法来控制访问 43

2.7 this 45

2.8 重载方法 45

2.9 导入静态成员名 47

2.10 main方法 48

2.11 本地方法 49

第3章 类的扩展 50

3.1 扩展类 50

3.2 扩展类的构造器 53

3.3 继承与重定义成员 56

3.3.1 覆盖 56

3.3.2 隐藏字段 57

3.3.3 访问继承的成员 57

3.3.4 可访问性与覆盖 59

3.3.5 隐藏静态成员 59

3.3.6 super关键字 59

3.4 类型兼容与转换 60

3.4.1 兼容性 60

3.4.2 显式的类型强制转换 61

3.4.3 类型检测 61

3.5 protected的真正含义 62

3.6 将方法与类标记为final 64

3.7 抽象类与抽象方法 65

3.8 Object类 66

3.9 克隆对象 68

3.9.1 克隆的策略 68

3.9.2 正确克隆 69

3.9.3 浅克隆与深克隆 71

3.10 扩展类: 如何扩展以及何时扩展 72

3.11 设计一个可扩展的类 73

3.12 单重继承与多重继承 77

第4章 接口 79

4.1 一个简单的接口示例 79

4.2 接口声明 81

4.2.1 接口常量 81

4.2.2 接口方法 82

4.2.3 接口修饰符 82

4.3 扩展接口 83

4.3.1 继承和隐藏常量 83

4.3.2 继承、覆盖和重载方法 84

4.4 使用接口 85

4.4.1 实现接口 86

4.4.2 使用实现 87

4.5 标记接口 88

4.6 何时使用接口 88

第5章 嵌套类和接口 90

5.1 静态嵌套类型 90

5.1.1 静态嵌套类 90

5.1.2 嵌套接口 92

5.2 内部类 92

5.2.1 访问包围对象 93

5.2.2 扩展内部类 94

5.2.3 继承、作用字段和隐藏 95

5.3 局部内部类 96

5.4 匿名内部类 98

5.5 继承嵌套类型 99

5.6 接口中的嵌套 100

5.7 嵌套类型的实现 101

第6章 枚举类型 102

6.1 一个简单的枚举类型的例子 102

6.2 枚举声明 103

6.3 枚举常量的声明 104

6.3.1 构造 104

6.3.2 常量相关的行为 105

6.4 java.lang.Enum 107

6.5 是否应该使用枚举 108

第7章 语言符号、值和变量 109

7.1 词法元素 109

7.1.1 字符集 109

7.1.2 注释 110

7.1.3 语言符号 111

7.1.4 标识符 111

7.1.5 关键字 112

7.2 类型和字面常量 112

7.2.1 引用型字面常量 113

7.2.2 布尔型字面常量 113

7.2.3 字符型字面常量 113

7.2.4 整型字面常量 113

7.2.5 浮点型字面常量 113

7.2.6 字符串型字面常量 114

7.2.7 类字面常量 114

7.3 变量 115

7.3.1 字段和局部变量的声明 115

7.3.2 参数变量 116

7.3.3 final变量 116

7.4 数组变量 117

7.4.1 数组修饰符 118

7.4.2 数组的数组 118

7.4.3 数组初始化 118

7.4.4 数组和类型 119

7.5 名字的意义 120

第8章 包装器类 123

8.1 通用字段和方法 124

8.1.1 构造 124

8.1.2 常量 124

8.1.3 公共方法 125

8.2 Void类 126

8.3 Boolean类 126

8.4 Number类 126

8.4.1 整型包装器 126

8.4.2 浮点型包装器类 128

8.5 Character类 129

8.6 装箱转换 133

第9章 运算符和表达式 135

9.1 算术运算 135

9.1.1 整数运算 135

9.1.2 浮点运算 136

9.1.3 严格浮点运算和非严格浮点运算 137

9.2 通用运算符 137

9.2.1 递增运算符和递减运算符 137

9.2.2 关系运算符和判等运算符 138

9.2.3 逻辑运算符 139

9.2.4 instanceof 140

9.2.5 位操作运算符 140

9.2.6 条件运算符?: 141

9.2.7 赋值运算符 142

9.2.8 字符串连接运算符 143

9.2.9 new 144

9.3 表达式 144

9.3.1 计算顺序 144

9.3.2 表达式类型 145

9.4 类型转换 145

9.4.1 隐式类型转换 145

9.4.2 显式类型强制转换 147

9.4.3 字符串转换 148

9.5 运算符优先级和结合性 148

9.6 成员访问 150

第10章 控制流 154

10.1 语句和块 154

10.2 if-else 155

10.3 switch 156

10.4 while和do-while 158

10.5 for 159

10.5.1 基本的for语句 159

10.5.2 增强的for语句 161

10.6 标号 162

10.7 break 162

10.8 continue 164

10.9 return 165

10.10 什么?没有goto? 165

第11章 泛型类型 167

11.1 泛型类型声明 169

11.1.1 有界类型参数 170

11.1.2 嵌套泛型类型 171

11.2 使用泛型类型 173

11.3 泛型方法和泛型构造器 176

11.4 通配符捕获 179

11.5 揭秘:擦除与原始类型 181

11.5.1 运行时擦除 181

11.5.2 重载与覆盖 183

11.6 再谈寻找正确的方法 184

11.7 类的扩展与泛型类型 187

第12章 异常与断言 189

12.1 创建异常类型 189

12.2 throw 191

12.2.1 控制的转移 191

12.2.2 异步异常 191

12.3 throws子句 192

12.3.1 throws子句和方法覆盖 193

12.3.2 throws子句和本地方法 193

12.4 try、catch和finally 194

12.5 异常链 197

12.6 栈轨迹 199

12.7 什么时候使用异常 199

12.8 断言 200

12.9 什么时候使用断言 201

12.9.1 状态断言 201

12.9.2 控制流断言 202

12.10 打开和关闭断言 203

12.10.1 为什么要开关断言? 203

12.10.2 在命令行控制断言 203

12.10.3 彻底移除 204

12.10.4 使断言成为必需的 204

第13章 字符串与正则表达式 206

13.1 字符序列 206

13.2 String类 206

13.2.1 基本的String操作 207

13.2.2 字符串比较 208

13.2.3 字符串字面常量、等同性和内存限定 210

13.2.4 创建相关字符串 211

13.2.5 字符串转换 214

13.2.6 字符串和char数组 215

13.2.7 字符串和byte数组 215

13.2.8 字符集编码方式 216

13.3 正则表达式的匹配 217

13.3.1 正则表达式 217

13.3.2 正则表达式的编译和匹配 218

13.3.3 替换 220

13.3.4 区域 222

13.3.5 效率 223

13.4 StringBuilder类 223

13.4.1 修改缓冲区 224

13.4.2 取出数据 225

13.4.3 容量管理 226

13.4.4 StringBuffer类 227

13.5 使用UTF-16 227

第14章 线程 229

14.1 创建线程 230

14.2 使用Runnable 232

14.3 同步 235

14.3.1 synchronized方法 235

14.3.2 静态synchronized方法 237

14.3.3 synchronized语句 237

14.3.4 同步设计 240

14.4 wait、notifyAll和notify 241

14.5 等待和通知的详细介绍 243

14.6 线程调度 244

14.7 死锁 247

14.8 结束线程的执行 248

14.8.1 取消线程 249

14.8.2 等待线程结束 250

14.9 结束应用程序的执行 251

14.10 内存模型: 同步和volatile 252

14.10.1 同步动作 253

14.10.2 final字段和安全 254

14.10.3 “之前发生”关系 254

14.11 线程管理、线程安全和ThreadGroup 255

14.12 线程和异常 258

14.12.1 不要使用stop 259

14.12.2 栈轨迹 260

14.13 ThreadLocal变量 260

14.14 调试线程 261

第15章 注解 263

15.1 一个简单的注解实例 263

15.2 注解类型 264

15.3 注解元素 266

15.4 限制注解的适用性 267

15.5 保存策略 268

15.6 使用注解 268

第16章 反射 270

16.1 Class类 272

16.1.1 类型符号 272

16.1.2 类检查 273

16.1.3 检查类成员 277

16.1.4 命名类 279

16.1.5 通过名字获取Class对象 281

16.1.6 运行时类型查询 281

16.2 注解查询 282

16.3 Modifier类 283

16.4 成员类 283

16.5 访问检查和AccessibleObject 284

16.6 Field类 284

16.7 Method类 286

16.8 创建新对象和Constructor类 288

16.9 泛型类型检查 290

16.9.1 类型变量 290

16.9.2 参数化类型 291

16.9.3 通配符 291

16.9.4 泛型数组 291

16.9.5 Type对象的字符串表示 292

16.10 数组 292

16.11 包 294

16.12 Proxy类 295

16.13 加载类 297

16.13.1 ClassLoader类 298

16.13.2 为类的使用做准备 300

16.13.3 加载相关资源 301

16.14 在运行时控制断言 302

第17章 垃圾回收与内存 304

17.1 垃圾回收 304

17.2 一个简单的模型 305

17.3 终结 305

17.4 与垃圾回收器交互 308

17.5 可达性状态和引用对象 309

17.5.1 Reference类 309

17.5.2 引用和可达性强度 310

17.5.3 引用队列 312

17.5.4 终结和可达性 316

第18章 包 317

18.1 包的命名 317

18.2 类型导入 318

18.3 包的访问 319

18.4 包的内容 322

18.5 包的注解 323

18.6 包对象和规范 323

第19章 文档注释 326

19.1 剖析文档注释 326

19.2 标签 327

19.2.1 @see 327

19.2.2 {@link}和{@linkplain} 328

19.2.3 @param 328

19.2.4 @return 328

19.2.5 @throws和@exception 328

19.2.6 @deprecated 329

19.2.7 @author 329

19.2.8 @version 329

19.2.9 @since 330

19.2.10 {@literal}和{@code} 330

19.2.11 {@value} 330

19.2.12 {@docRoot} 330

19.2.13 {@inheritDoc} 331

19.3 继承方法的文档注释 331

19.4 一个简单示例 332

19.5 外部规范 334

19.5.1 包文档和概述文档 334

19.5.2 doc-files目录 337

19.6 使用说明 337

第20章 I/O包 338

20.1 流的概述 338

20.2 字节流 339

20.2.1 InputStream 340

20.2.2 OutputStream 342

20.3 字符流 343

20.3.1 Reader 344

20.3.2 Writer 345

20.3.3 字符流与标准流 346

20.4 InputStreamReader与OutputStreamWriter 346

20.5 流类简介 348

20.5.1 同步与并发 348

20.5.2 Filter流 349

20.5.3 Buffered流 351

20.5.4 Piped流 352

20.5.5 ByteArray字节流 353

20.5.6 CharArray字符流 354

20.5.7 String字符流 354

20.5.8 Print流 355

20.5.9 LineNumberReader 357

20.5.10 SequenceInputStream 358

20.5.11 Pushback流 359

20.5.12 StreamTokenizer 360

20.6 数据字节流 363

20.6.1 DataInput与DataOutput 364

20.6.2 Data流类 365

20.7 文件操作 366

20.7.1 File流与FileDescriptor 366

20.7.2 RandomAccessFile 367

20.7.3 File类 368

20.7.4 FilenameFilter与FileFilter 371

20.8 对象序列化 372

20.8.1 Object字节流 372

20.8.2 让我们的类成为可序列化的(Serializable) 373

20.8.3 序列化和反序列化顺序 375

20.8.4 定制序列化 375

20.8.5 对象版本机制 378

20.8.6 序列化字段 379

20.8.7 Externalizable接口 381

20.8.8 文档注释标签 381

20.9 IOException类 382

20.10 体验新I/O 383

第21章 集合 385

21.1 集合 385

21.2 迭代 387

21.3 使用Comparable和Comparator排序 389

21.4 Collection接口 390

21.5 Set和SortedSet 391

21.5.1 HashSet 392

21.5.2 LinkedHashSet 393

21.5.3 TreeSet 393

21.6 List 393

21.6.1 ArrayList 394

21.6.2 LinkedList 395

21.6.3 RandomAccess列表 396

21.7 Queue 396

21.8 Map和SortedMap 398

21.8.1 HashMap 400

21.8.2 LinkedHashMap 400

21.8.3 IdentityHashMap 401

21.8.4 WeakHashMap 401

21.8.5 TreeMap 402

21.9 enum集合 402

21.9.1 EnumSet 402

21.9.2 EnumMap 403

21.10 包装集合和Collections类 404

21.10.1 Collections工具 404

21.10.2 不可修改的包装器 407

21.10.3 检查型包装器 407

21.11 同步包装和并发集合 407

21.11.1 同步包装器 408

21.11.2 并发集合 409

21.12 Arrays工具类 411

21.13 编写迭代器实现 412

21.14 编写集合实现 413

21.15 遗留集合类型 417

21.15.1 Enumeration 417

21.15.2 Vector 418

21.15.3 Stack 419

21.15.4 Dictionary 419

21.15.5 Hashtable 419

21.16 Properties 419

第22章 各种常用工具 421

22.1 Formatter 421

22.1.1 格式说明符 422

22.1.2 整型转换 423

22.1.3 浮点转换 424

22.1.4 字符转换 425

22.1.5 通用转换 425

22.1.6 自定义格式化 425

22.1.7 格式控制异常 426

22.1.8 Formatter类 426

22.2 BitSet 427

22.3O bserver/Observable 429

22.4 Random 432

22.5 Scanner 433

22.5.1 数值流 433

22.5.2 扫描行 435

22.5.3 使用Scanner 437

22.5.4 本地化 440

22.6 StringTokenizer 440

22.7 Timer和TimerTask 441

22.8 UUID 444

22.9 Math和StrictMath 444

第23章 系统编程 447

23.1 System类 447

23.1.1 标准I/O流 447

23.1.2 系统属性 448

23.1.3 工具方法 449

23.2 创建进程 450

23.2.1 Process 451

23.2.2 进程环境 452

23.2.3 ProcessBuilder 453

23.2.4 可移植性 454

23.3 关闭 454

23.3.1 关闭挂钩 454

23.3.2 关闭序列 455

23.3.3 关闭策略 456

23.4 Runtime的其他部分 456

23.4.1 加载本地代码 457

23.4.2 调试 457

23.5 安全 457

23.5.1 SecurityManager类 458

23.5.2 权限 459

23.5.3 安全策略 460

23.5.4 访问控制器和特权执行 460

第24章 国际化与本地化 462

24.1 区域 462

24.2 资源束 464

24.2.1 ListResourceBundle 466

24.2.2 PropertyResourceBundle 467

24.2.3 子类化ResourceBundle 467

24.3 货币 468

24.4 时间、日期和日历 468

24.4.1 日历 469

24.4.2 时区 472

24.4.3 GregorianCalendar和SimpleTimeZone 473

24.5 格式化和解析日期与时间 474

24.6 文本的国际化和本地化 477

24.6.1 对照 477

24.6.2 格式化和解析 478

24.6.3 文本边界 480

第25章 标准包 482

25.1 java.awt——抽象窗口工具箱 483

25.2 java.applet——小应用程序 485

25.3 java.beans——构件 486

25.4 java.math——数学 486

25.5 java.net——网络 488

25.6 java.rmi——远程方法调用 490

25.7 java.security与相关的包——安全工具 493

25.8 java.sql——关系数据库访问 494

25.9 工具子包 494

25.9.1 并发工具java.util.concurrent 494

25.9.2 压缩文件工具java.util.jar 496

25.9.3 ZIP压缩文件工具java.util.zip 496

25.10 javax.*标准扩展 497

25.11 javax.accessibility——GUI的易用性 497

25.12 javax.naming——目录与命名服务 497

25.13 javax.sound——音频操作 498

25.14 javax.swing——Swing GUI构件 498

25.15 org.omg.CORBA--CORBA API 499

附录A 应用演化 500

附录B 常用表格 505

进阶读物 510

索引

......(更多)

读书文摘

求知欲是治疗无聊的良方。 求知欲本身无药可治。

......(更多)

猜你喜欢

点击查看