《Java编程艺术》PDF下载

  • 购买积分:21 如何计算积分?
  • 作  者:(美)高永强著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2009
  • ISBN:9787302193173
  • 页数:759 页
图书介绍:本书使用大量详尽的应用实例,以3w为主线,以实际编程例子分析和应用开发为基本思想。并结合大量取材新型的独立完整的应用示例,详尽的介绍Java的基本使用方法和高级使用技巧。

第1部分 新手上路篇 2

第1章 初识Java 2

1.1 什么是Java 2

1.2 Java能做什么 2

1.3 Java软件包 3

1.3.1 什么是Java SE 3

1.3.2 什么是Java EE 4

1.3.3 什么是Java ME 4

1.3.4 我可以学到什么 4

1.4 Java工作平台 5

1.4.1 什么是Java的工作平台 5

1.4.2 为什么Java可以在任何工作平台上运行 5

1.5 Java和其他语言比较 6

1.5.1 Java和C++的比较 6

1.5.2 Java和C#的比较 7

1.5.3 我为什么学Java 7

1.5.4 新手常遇到的困难 7

1.5.5 本书怎样帮助你 8

1.6 Java的编程范围 8

1.6.1 桌面应用编程 9

1.6.2 Web客户端编程 9

1.6.3 服务器编程 10

1.6.4 手机编程 11

1.6.5 机器人编程 12

1.6.6 为什么从这本书入手 13

巩固提高练习 13

第2章 熟悉Java的工作环境 14

2.1 安装Java 14

2.1.1 免费下载Java 14

2.1.2 Java的安装步骤 14

2.2 设置执行路径 15

2.2.1 什么是执行路径 15

2.2.2 怎样设置执行路径 15

2.3 安装成功我知道 17

2.3.1 测试步骤 17

2.3.2 代码不运行怎么办 18

2.4 Java IDE 18

2.4.1 什么是Java IDE 19

2.4.2 为什么使用Eclipse 19

2.4.3 怎样安装Eclipse 20

2.4.4 Eclipse的常用功能 21

2.4.5 编译和运行你的第一个Java程序 22

2.4.6 编译错误、运行错误和Debugging 23

2.5 使用Java指令 24

2.5.1 编译指令——javac 24

2.5.2 运行桌面应用程序指令——java 25

2.5.3 运行applet指令——appletviewer 26

2.5.4 常用DOS/Linux/Unix指令 27

2.6 初识API 27

2.6.1 理解API 27

2.6.2 API文档 28

2.7 其他Java IDE 31

2.7.1 TextPad 31

2.7.2 NetBeans IDE 32

2.7.3 BlueJ 32

巩固提高练习 34

第3章 开始Java编程 36

3.1 从基本开始 36

3.1.1 语句 36

3.1.2 注释,还是注释 37

3.1.3 合法标识符 38

3.2 基本数据 39

3.2.1 8种基本数据类型 39

3.2.2 定义变量 40

3.2.3 变量初始化 41

3.2.4 变量与存储器 43

3.2.5 常量初始化 43

3.2.6 赋值语句 44

3.2.7 算术表达式 44

3.2.8 快捷赋值操作符 46

3.3 字符串初探 47

3.3.1 新手理解字符串 47

3.3.2 理解字符串引用 48

3.3.3 连接操作 49

3.3.4 特殊字符 51

3.4 类和对象初探 52

3.4.1 新手理解类和对象 52

3.4.2 访问修饰符初探 53

3.4.3 怎样编写类 54

3.4.4 怎样测试我编写的类 57

3.4.5 一个具体的例子——里程转换类 58

3.4.6 使用API类 61

3.4.7 细说JOptionPane 63

3.5 更多输入、输出操作 67

3.5.1 回到黑白——System.out 68

3.5.2 扫描输入——Scanner 69

3.5.3 用户友好与人机互动 71

3.6 控制语句初探 72

3.6.1 关系表达式 72

3.6.2 怎样比较基本数据 73

3.6.3 怎样比较字符串 74

3.6.4 简单if语句 76

3.6.5 简单if-else语句 79

3.6.6 while循环语句 80

3.7 Java编程风格 83

3.7.1 为什么Java编程风格如此重要 83

3.7.2 Java职业化的编程风格 83

3.8 一个投资回报编程实例 84

巩固提高练习 86

第4章 走进控制语句 89

4.1 逻辑表达式 89

4.1.1 逻辑表 89

4.1.2 运算优先级 90

4.1.3 逻辑应用举例 90

4.2 嵌套if-else 92

4.2.1 多种格式 92

4.2.2 应用实例 94

4.2.3 条件运算符?: 94

4.3 多项选择——switch 95

4.3.1 典型switch格式 95

4.3.2 应用实例 97

4.4 走进循环语句 98

4.4.1 走进while循环 98

4.4.2 走进do-while循环 100

4.4.3 走进for循环 101

4.4.4 走进嵌套循环 103

4.4.5 几个应用实例 104

4.5 break和continue 107

4.5.1 break 107

4.5.2 带标签的break 108

4.5.3 continue 109

4.5.4 带标签的continue 111

巩固提高练习 111

第5章 数据控制 114

5.1 将错误消灭在开始 114

5.2 异常处理初探 114

5.2.1 处理机制——try-catch 115

5.2.2 标准异常类 116

5.2.3 抛出异常 117

5.2.4 用throw验证 117

5.2.5 灵活应用throw 119

5.2.6 几个应用实例 120

5.3 编写数据验证类 122

5.3.1 静态方法初探 122

5.3.2 编写两个数据验证类的典型实例 123

5.4 数据验证实例——检查投资回报程序的用户输入 124

5.5 格式化输出 127

5.5.1 货币格式化 128

5.5.2 不同货币的格式化输出 129

5.5.3 百分比格式化 130

5.5.4 数值格式化 131

5.5.5 格式化输出实例 133

5.6 类型转换 133

5.6.1 自动类型转换 133

5.6.2 造型 134

5.7 Math类 135

5.8 包装类 136

5.9 BigDecimal类 138

5.10 BigDecimal和格式化 139

巩固提高练习 140

第2部分 深入篇 144

第6章 走进类和对象 144

6.1 面向对象编程 144

6.1.1 类和对象剖析 145

6.1.2 封装性 145

6.1.3 继承性 146

6.1.4 多态性 147

6.2 类是编程模块 148

6.2.1 抽象化 148

6.2.2 怎样确定实例变量 148

6.2.3 构造器及其作用 149

6.2.4 构造器重载——更灵活地创建对象 152

6.2.5 走进方法 153

6.2.6 传递值和传递引用 155

6.2.7 方法重载 156

6.2.8 this是什么 158

6.3 走进静态数据 162

6.3.1 类数据 162

6.3.2 属于所有对象 163

6.3.3 静态数据原则 163

6.4 走进静态方法 164

6.4.1 类方法 164

6.4.2 静态方法怎样储存 165

6.4.3 静态初始化程序块 166

6.5 再谈对象 167

6.5.1 创建对象pk.引用对象 168

6.5.2 对象名重用 170

6.5.3 走进方法链式调用 170

6.6 改进后的投资回报实例 171

巩固提高练习 173

第7章 继承 174

7.1 概述 174

7.1.1 归类分析 175

7.1.2 “is a”关系和“has a”关系 176

7.1.3 代码重用 176

7.1.4 代码可靠性 177

7.1.5 其他好处 177

7.1.6 局限性 178

7.1.7 API怎样利用继承 178

7.1.8 三种基本继承类型 179

7.2 实现继承 180

7.2.1 怎样写超类 181

7.2.2 怎样写子类 182

7.3 访问修饰符再探 184

7.4 更多继承技术 185

7.4.1 重载 185

7.4.2 覆盖 186

7.4.3 屏蔽 188

7.4.4 对象信息 189

7.5 抽象——abstract 193

7.5.1 抽象就是高度概括 193

7.5.2 抽象类和抽象方法 194

7.5.3 应用抽象——几何物体的计算 196

7.6 什么是final类 199

7.6.1 不能继承final类 199

7.6.2 定义final类 199

7.6.3 不能覆盖final方法 200

7.6.4 final参数 200

7.6.5 提高执行速度 200

巩固提高练习 201

第8章 多态 203

8.1 概述 203

8.1.1 多态问题 203

8.1.2 多态好处 204

8.1.3 步入多态 205

8.2 实现多态 208

8.2.1 超类提供多态接口 208

8.2.2 子类完善接口 209

8.2.3 如何使用多态 210

8.3 多态应用实例——计算雇员工资 211

8.4 走进方法绑定 214

8.4.1 静态绑定 214

8.4.2 动态绑定 214

8.4.3 走进绑定和调用 214

8.4.4 invokespecial和invokevirtual 215

巩固提高练习 216

第9章 接口Interface 217

9.1 概述 217

9.1.1 接口和类 217

9.1.2 接口和抽象 218

9.1.3 步入接口 219

9.1.4 接口pk.抽象类 220

9.1.5 常用API接口 221

9.2 实现接口 222

9.2.1 完善接口方法 222

9.2.2 实现多重继承 224

9.2.3 接口的继承 226

9.2.4 接口参数 227

9.3 Cloneable接口 228

9.3.1 实现Cloneable 229

9.3.2 引用pk.复制 229

9.3.3 浅复制pk.深复制 230

9.3.4 应用实例——利用最高超类实现Cloneable接口 233

巩固提高练习 234

第3部分 更多Java 236

第10章 数组和字符串 236

10.1 概述 236

10.1.1 理解数组 236

10.1.2 数组和对象 237

10.1.3 走进数组 238

10.2 数组操作 241

10.2.1 访问数组元素 241

10.2.2 数组和循环 243

10.2.3 Java新循环 244

10.2.4 应用实例 245

10.3 更多数组技术 247

10.3.1 多维数组 247

10.3.2 非规则多维数组 250

10.3.3 数组参数 251

10.3.4 返回数组 252

10.4 Arrays类 253

10.4.1 常用方法 254

10.4.2 排序和搜索 255

10.4.3 数组复制 256

10.4.4 了解Comparable接口 258

10.4.5 我要排序 260

10.5 走进字符串 261

10.5.1 引用pk.创建 262

10.5.2 构造器 263

10.5.3 更多字符串方法 264

10.5.4 应用实例 266

10.6 StringBuilder类 269

10.6.1 内容可变pk.内容不可变 269

10.6.2 构造器 270

10.6.3 常用方法 270

10.6.4 应用实例 272

10.6.5 StringBuffer类 274

10.7 StringTokenizer类——分解字符串对象 274

10.7.1 什么是token 275

10.7.2 构造器和方法 275

10.7.3 应用实例 276

10.8 正则表达式 276

10.8.1 初识正则表达式 277

10.8.2 规则 278

10.8.3 String类的matches()方法 280

10.8.4 Pattern和Matcher类 280

10.8.5 应用实例 282

巩固提高练习 284

第11章 走进异常 286

11.1 API异常处理类 286

11.2 非检查性异常 287

11.2.1 第一现场分析 287

11.2.2 为什么处理非检查性异常 288

11.3 检查性异常 288

11.3.1 第一现场分析 288

11.3.2 常见检查性异常 289

11.4 异常处理机制 289

11.4.1 传统机制 289

11.4.2 异常传播初探 292

11.4.3 更多异常信息 293

11.4.4 应用实例 294

11.5 应用throw 297

11.5.1 系统自动抛出 298

11.5.2 我也可以抛出 298

11.5.3 重抛异常 299

11.6 嵌套异常处理 300

11.6.1 嵌套方式 300

11.6.2 嵌套异常传播 302

11.6.3 嵌套异常重抛 302

11.7 自定义异常类 303

11.7.1 编写自定义异常类的模式 303

11.7.2 自定义异常处理 304

11.7.3 应用实例 305

11.8 异常链 307

11.8.1 异常丢失 307

11.8.2 实现异常链 307

11.9 断言——assert 309

11.9.1 断言编写 309

11.9.2 开启和关闭断言 310

巩固提高练习 311

第12章 更多OOP技术 313

12.1 包——package 313

12.1.1 包命名规范 314

12.1.2 创建包文件 314

12.1.3 引入包文件 316

12.1.4 JAR文件 316

12.1.5 IDE中的包 317

12.1.6 走进访问权 318

12.2 文档网页 321

12.2.1 文档化 321

12.2.2 javadoc和HTML标记 323

12.2.3 javadoc指令 324

12.2.4 应用实例 324

12.3 类的更多应用 326

12.3.1 继承和组合 326

12.3.2 文件类 327

12.3.3 内部类 327

12.3.4 静态内部类 329

12.3.5 本地类 331

12.3.6 匿名类 332

12.3.7 应用总结 333

12.4 枚举 334

12.4.1 枚举类型 334

12.4.2 静态引入 337

12.4.3 走进枚举 338

12.4.4 应用实例 340

12.5 自动装箱 341

12.5.1 如此容易 342

12.5.2 引用还是创建 342

12.6 自动卸箱 343

12.6.1 亦非难事 343

12.6.2 性能测试 344

12.7 可变参数 345

12.7.1 重载的最好例子 345

12.7.2 怎样工作 346

12.7.3 可变参数方法重载 347

12.7.4 应用实例 348

巩固提高练习 350

第13章 集合类 352

13.1 对象集合 352

13.1.1 集合pk.数组 353

13.1.2 集合类概述 353

13.1.3 泛类型 355

13.1.4 类型安全 363

13.2 走进集合类 364

13.2.1 可变数组——ArrayList 364

13.2.2 链接表——LinkedList 367

13.2.3 HashSet 368

13.2.4 元素迭代器——Iterator 370

13.2.5 应用实例 371

13.3 Map的集合类 373

13.3.1 HashMap 373

13.3.2 TreeMap 375

13.3.3 自定义排序 377

13.3.4 应用实例 378

13.4 数据结构及算法 380

13.4.1 堆栈 380

13.4.2 队列 381

13.4.3 排序 382

13.4.4 搜索 384

13.4.5 洗牌 386

13.4.6 集合类总结 387

13.4.7 同步与不同步 388

13.4.8 应用实例 388

巩固提高练习 393

第14章 多线程 395

14.1 多线程剖析 395

14.1.1 线程怎样工作 395

14.1.2 多任务和多处理 396

14.1.3 应用范围 396

14.1.4 线程的五种状态 397

14.1.5 一个多线程的例子 397

14.2 建立线程 398

14.2.1 继承Thread 399

14.2.2 实现Runnable 400

14.2.3 生产-消费线程初例 401

14.3 线程控制 404

14.3.1 优先——setPriority() 404

14.3.2 让步——yield() 405

14.3.3 睡眠——sleep() 406

14.3.4 加入——join() 407

14.3.5 中断——interrupt() 408

14.3.6 应用实例 409

14.4 线程协调 412

14.4.1 协调技术概述 412

14.4.2 易变数据——volatile 412

14.4.3 协作——synchronized 413

14.4.4 等待——wait() 415

14.4.5 通知——notify()/notifyAll() 416

14.4.6 应用实例 418

14.5 更多线程 421

14.5.1 走进监视器和锁定 422

14.5.2 多线程术语和技巧 422

14.5.3 并行类包 423

巩固提高练习 427

第4部分 GUI和多媒体 430

第15章 GUI组件 430

15.1 概述 430

15.1.1 AWT和Swing 431

15.1.2 继承关系图 431

15.1.3 Component常用方法 432

15.2 框架就是窗口 432

15.2.1 显示框架 433

15.2.2 关闭框架 434

15.2.3 位置和大小控制 434

15.2.4 应用实例 436

15.3 控制面板——JPanel 437

15.3.1 例子 437

15.3.2 步骤 438

15.3.3 内部结构 438

15.4 按钮——JButton 439

15.4.1 举例 440

15.4.2 默认布局管理 442

15.4.3 按钮事件处理 443

15.5 标签和文本字段 444

15.5.1 标签——JLabel 444

15.5.2 文本字段——JTextField 445

15.5.3 处理文本字段事件 447

15.5.4 JPasswordField 448

15.5.5 应用实例 449

15.6 文本窗口——JTextArea 451

15.6.1 建立文本窗口 451

15.6.2 滚动面板——JScrollPane 452

15.6.3 应用实例 452

15.7 选项框——JCheckBox 454

15.7.1 选项框事件处理 455

15.7.2 应用实例 455

15.8 单选按钮——JRadioButton 458

15.8.1 单选按钮事件处理 459

15.8.2 应用实例 460

巩固提高练习 462

第16章 GUI组件布局 464

16.1 概述 464

16.2 流程布局——FlowLayout 464

16.2.1 显示位置 465

16.2.2 更多例子 465

16.3 围界布局——BorderLayout 467

16.3.1 五种区域 467

16.3.2 布局嵌套 468

16.3.3 更多例子 469

16.4 边框——Border 469

16.4.1 边框设置步骤 471

16.4.2 应用实例 471

16.5 标记板——JTabbedPane 473

16.5.1 使用标记板 473

16.5.2 应用实例 474

16.6 BoxLayout和GridLayout 476

16.6.1 嵌套使用 478

16.6.2 计算器模拟(1) 480

16.7 GridBagLayout 481

16.7.1 设计步骤 482

16.7.2 应用实例 483

16.8 用户接口管理——UIManager 485

16.8.1 常用UIManager 486

16.8.2 应用实例 486

巩固提高练习 488

第17章 更多组件和事件处理 489

17.1 下拉列表——JComboBox 489

17.1.1 举例 490

17.1.2 事件处理 491

17.1.3 ItemListener事件处理接口 491

17.1.4 应用实例 493

17.2 列表——JList 497

17.2.1 举例 498

17.2.2 ListSelectionListener接口 499

17.2.3 更多列表操作 500

17.2.4 应用实例 501

17.3 菜单——JMenu 503

17.3.1 菜单编写步骤 503

17.3.2 举例 504

17.3.3 子菜单 505

17.3.4 事件处理 505

17.3.5 设置键盘助记 506

17.3.6 设置快捷键 506

17.3.7 MenuListener接口 507

17.3.8 应用实例 509

17.4 弹出式菜单 513

17.4.1 编写步骤 514

17.4.2 举例 514

17.4.3 PopupMenuListener接口 515

17.4.4 鼠标右键激活 516

17.4.5 应用实例 517

17.5 更多组件 518

17.5.1 滑块——JSlider 518

17.5.2 进度条——JProgressBar 521

17.5.3 文件选择器——JFileChooser 522

17.5.4 颜色选择器——JColorChooser 525

1 7.5.5 制表——JTable 526

17.5.6 树——JTree 528

17.5.7 桌面板——JDesktopPane 531

巩固提高练习 532

第18章 更多事件处理 534

18.1 更多GUI事件处理 534

18.1.1 走进GUI事件处理 534

18.1.2 常用接口 536

18.1.3 适配器 538

18.1.4 应用举例 538

18.2 鼠标事件处理 539

18.2.1 事件类型 539

18.2.2 接口和适配器 540

18.2.3 小画家程序 540

18.3 键盘事件处理 542

18.3.1 接口和适配器 43

18.3.2 常用方法 543

18.3.3 计算器模拟(2) 545

18.4 走进组件编程 547

18.4.1 组件编程的6种方式 548

18.4.2 事件处理的6种方式 552

巩固提高练习 554

第19章 Applet编程 556

19.1 概述 556

19.1.1 历史 556

19.1.2 安全 557

19.1.3 常用方法 557

19.1.4 例子 558

19.2 编写Applets 559

19.2.1 特点分析 560

19.2.2 编程步骤 560

19.2.3 HTML调用applet 561

19.2.4 更多实例 561

19.3 走进Applet 565

19.3.1 Applet如何运行 566

19.3.2 HtmlConverter 566

19.3.3 测试 568

19.3.4 JAR文件 570

19.3.5 实例 571

巩固提高练习 572

第20章 字体、颜色、图像和声音 574

20.1 字体 574

20.1.1 常用术语 574

20.1.2 常用方法 575

20.1.3 应用实例 576

20.2 颜色 578

20.2.1 常用术语 579

20.2.2 常用方法 579

20.2.3 应用实例 580

20.3 图形绘制 582

20.3.1 绘制步骤 583

20.3.2 Java2D API 584

20.3.3 常用方法 584

20.3.4 二维图形类 585

20.3.5 举例——编写一个可以绘制图形的applet 586

20.3.6 编写一个鼠标击球游戏 589

20.4 图像 594

20.4.1 图像格式 594

20.4.2 常用方法 594

20.4.3 举例 595

20.4.4 编写一个会动的照片 598

20.5 图标 599

20.5.1 常用方法 599

20.5.2 举例 601

20.5.3 编写一个认字母游戏 602

20.6 声音和音频处理 605

20.6.1 常用方法 605

20.6.2 免费下载音频剪辑 607

20.6.3 举例——播放音乐 607

20.6.4 让音乐伴随游戏 609

巩固提高练习 612

第5部分 数据流和处理第21章 文件I/O 616

21.1 数据流和文件 616

21.1.1 文件I/O须知 617

21.1.2 文件路径 617

21.1.3 绝对路径pk.规范路径 618

21.1.4 URI、URL和URNs 618

21.1.5 文件类 619

21.1.6 缓冲 621

21.1.7 文件I/O异常 622

21.2 文本文件I/O 622

21.2.1 输出 623

21.2.2 举例——缓冲和无缓冲的文本输出 623

21.2.3 输入 626

21.2.4 举例——文件的读取 626

21.2.5 产品文件管理实例 629

21.3 二进制文件I/O 634

21.3.1 输出 634

21.3.2 举例 635

21.3.3 输入 637

21.3.4 举例 638

21.3.5 实例 639

21.4 对象序列化I/O 643

21.4.1 你的对象序列化了吗 644

21.4.2 怎样序列化 644

21.4.3 常用类和方法 644

21.4.4 步骤 645

21.4.5 实例 645

21.5 随机文件I/O 651

21.5.1 常用方法 651

21.5.2 记录和位置计算 652

21.5.3 举例 653

21.5.4 实例 654

21.6 更多文件I/O 660

2 1.6.1 再用JFileChooser 660

2 1.6.2 压缩文件I/O 662

21.6.3 用Scanner读入文件 668

巩固提高练习 670

第22章 数据库编程 672

22.1 JDBC 672

22.2 初识数据库 673

22.3 SQL 674

22.3.1 六种基本指令 674

22.3.2 SQL数据类型 675

22.3.3 CREATE 675

22.3.4 SELECT 676

22.3.5 UPDATE 676

22.3.6 INSERT 677

22.3.7 DELETE 677

22.3.8 DROP 677

22.4 数据库安装 678

22.4.1 下载 678

22.4.2 安装 678

22.4.3 测试 681

22.4.4 例子 684

22.5 对话数据库 686

22.5.1 连接 686

22.5.2 发送SQL指令 687

22.5.3 回传结果 688

22.5.4 提取和修改结果 690

22.5.5 预备指令 691

22.5.6 实例 693

22.6 更多JDBC编程 700

22.6.1 元数据 700

22.6.2 事务处理 701

22.6.3 实例——实现对数据库编程的主要操作 702

巩固提高练习 706

第23章 网络编程 707

23.1 网络初探 707

23.1.1 通讯协议 707

23.1.2 Internet地址 708

23.1.3 URL pk.URI 708

23.1.4 端口 709

23.1.5 使用telnet 710

23.1.6 再谈HTTP 710

23.1.7 URL和URLConnection编程 712

23.2 初识网络编程 714

23.2.1 什么是Sockets 714

23.2.2 数据流Sockets pk.数报式Sockets 714

23.2.3 用户-服务器编程步骤 715

23.2.4 Socket编程 715

23.2.5 Datagram编程 720

23.3 走进网络编程 724

23.3.1 Socket多用户-服务器编程 724

23.3.2 Datagram多用户-服务器编程 727

23.3.3 多用户-服务器-数据库编程 730

23.4 更多网络编程 738

23.4.1 面向连接传输pk.面向传输连接 738

23.4.2 Socket超时 739

23.4.3 可中断 740

23.4.4 半关闭 741

23.4.5 java.io pk.java.nio 742

23.4.6 数据流pk.数据块 742

23.4.7 通道 743

23.4.8 缓冲 744

23.4.9 字符集 745

23.4.10 选择器 746

23.4.11 通道编程实例 748

23.4.12 聊天室应用实例 753

巩固提高练习 758