《Java 7入门经典》

基本信息

原书名:Ivor Horton's Beginning Java,Java 7 Edition

作者: (美)Ivor Horton [作译者介绍]

出版社:清华大学出版社

ISBN:9787302289593

上架时间:2012-7-6

出版日期:2012 年7月

开本:16开

页码:1

版次:1-1

所属分类: 计算机 > 软件与程序设计 > JAVA(J#) > Java


Java 7入门经典_数据

内容简介

书籍

计算机书籍

无论学习java是为了编写嵌入网页的定制applet,还是为了编写大型应用程序,本书都十分适合阅读。本书是关于java语言讲解最为细致、全面的入门书籍,介绍了使用最新的java jdk 7开发程序所需要的所有基础知识。书中包含大量的示例,清晰地解释了涉及的关键概念,演示了java开发的复杂细节。在阅读各个章节的过程中,您还能获得无价的编程经验,并逐步开始编写功能全面的java程序。

ivor horton在编写入门类编程图书方面独具心得,著作深受好评。java se 7相对之前发布版本更新了超过30%的语言特性,本书从基础知识入门,介绍了使用这一最新发布版本编写java程序的方方面面,涵盖了java的所有语言新特性,可为读者打下坚实的基础。

目录

《java 7入门经典》

第1章 java简介 1

1.1 java概览 1

1.2 java语言的特性 2

1.3 学习java 2

1.3.1 java程序 3

1.3.2 java学习路线图 3

1.4 java环境 4

1.5 java中的面向对象编程 11

1.5.1 什么是对象 12

1.5.2 如何定义对象类 13

1.5.3 对象操作 15

1.5.4 java程序语句 17

1.5.5 封装 17

1.5.6 类与数据类型 18

1.5.7 类与子类 18

1.5.8 使用对象的优势 18

1.5.9 标记 18

1.5.10 泛型类 19

1.6 java程序结构 19

1.6.1 java的类库 19

1.6.2 java应用程序 21

1.7 java和unicode 23

1.8 小结 24

1.9 资源 25

第2章 程序、数据、变量和计算 27

2.1 数据和变量 27

2.1.1 变量的命名 28

2.1.2 变量名与unicode 28

2.1.3 变量与类型 29

2.2 整数数据类型 29

2.3 浮点数数据类型 33

2.3.1 浮点数字面量 33

2.3.2 声明浮点型变量 34

2.4 固定变量的值 34

2.5 算术运算 35

2.5.1 整数计算 35

2.5.2 整数除法和余数 40

2.5.3 增量与减量运算符 40

2.5.4 短整数类型的计算 42

2.5.5 整数算术中的错误 43

2.5.6 浮点计算 43

2.5.7 其他浮点算术运算符 44

2.5.8 浮点算术中的错误情况 44

2.5.9 混合算术表达式 45

2.5.10 显式转换 45

2.5.11 赋值中的自动类型转换 46

2.6 op=运算符 46

2.7 数学函数和常量 47

2.8 存储字符 51

2.8.1 字符转义序列 51

2.8.2 字符算术 52

2.9 位运算 54

2.9.1 使用and和or运算符 55

2.9.2 使用异或运算符 58

2.9.3 位移操作 59

2.9.4 位操作方法 62

2.10 取值范围为固定整数值集合的变量 64

2.11 布尔变量 66

2.12 运算符的优先级 67

2.13 程序注释 68

2.14 小结 70

第3章 循环与逻辑 73

3.1 决策 73

3.1.1 比较 74

3.1.2 if语句 74

3.1.3 嵌套的if语句 78

3.1.4 比较枚举值 81

3.2 逻辑运算符 81

3.2.1 逻辑与操作 82

3.2.2 逻辑或操作 84

3.2.3 异或操作 84

3.2.4 布尔非操作 84

3.2.5 使用标准库方法测试字符 85

3.3 条件运算符 86

3.4 switch语句 88

3.5 变量的作用域 94

3.6 循环 96

3.6.1 循环的种类 97

3.6.2 使用浮点值计数 103

3.6.3 嵌套循环 103

3.6.4 continue语句 105

3.6.5 带标签的continue语句 105

3.6.6 在循环中使用break语句 107

3.7 断言 112

3.8 小结 114

第4章 数组与字符串 117

4.1 数组 117

4.1.1 数组变量 118

4.1.2 定义数组 118

4.1.3 数组长度 119

4.1.4 访问数组元素 119

4.1.5 重用数组变量 119

4.1.6 初始化数组 120

4.1.7 使用数组 123

4.1.8 二维数组 126

4.1.9 字符数组 130

4.2 字符串 131

4.2.1 字符串字面量 131

4.2.2 创建string对象 132

4.2.3 字符串数组 134

4.3 字符串操作 135

4.3.1 连接字符串 135

4.3.2 比较字符串 139

4.3.3 字符串排序 144

4.3.4 访问字符串中的字符 146

4.3.5 在字符串中查找字符 148

4.3.6 查找子字符串 149

4.3.7 提取子字符串 152

4.3.8 string对象的修改版本 156

4.3.9 从string对象创建字符数组 157

4.3.10 使用字符串执行基于集合的for循环 157

4.3.11 在字符串中获取字节数组形式的字符 158

4.3.12 从字符数组中创建string对象 158

4.4 可变字符串 159

4.4.1 创建stringbuffer对象 160

4.4.2 stringbuffer对象的容量 160

4.4.3 为stringbuffer对象修改字符串的长度 162

4.4.4 增长stringbuffer对象 162

4.4.5 寻找子字符串的位置 164

4.4.6 替换缓冲区中的子字符串 165

4.4.7 插入字符串 165

4.4.8 从可变字符串中提取字符 166

4.4.9 可变字符串的其他操作 167

4.4.10 从stringbuffer对象创建string对象 167

4.5 小结 169

第5章 定义类 173

5.1 类的定义 173

5.1.1 类定义中的域 174

5.1.2 类定义中的方法 175

5.1.3 访问变量和方法 176

5.1.4 final域 177

5.2 定义类 177

5.3 定义方法 178

5.3.1 方法的返回值 179

5.3.2 参数列表 179

5.3.3 定义类方法 181

5.3.4 访问方法中的类数据成员 182

5.3.5 变量this 182

5.3.6 初始化数据成员 183

5.4 构造函数 186

5.4.1 默认构造函数 187

5.4.2 创建类的对象 188

5.5 定义和使用类 190

5.6 方法重载 192

5.6.1 多个构造函数 193

5.6.2 使用构造函数复制对象 196

5.7 使用对象 196

5.8 递归 202

5.9 理解包 204

5.9.1 对类打包 204

5.9.2 将类从包添加到程序中 207

5.9.3 程序中的包和名称 208

5.9.4 导入静态类成员 208

5.9.5 标准包 209

5.10 类成员的访问控制 212

5.10.1 使用访问属性 212

5.10.2 设定访问属性 214

5.10.3 选择访问属性 215

5.11 嵌套类 220

5.11.1 静态嵌套类 221

5.11.2 使用非静态嵌套类 225

5.11.3 使用非顶级类的嵌套类 227

5.11.4 本地嵌套类 228

5.12 小结 228

第6章 扩展类与继承 231

6.1 使用已有的类 231

6.2 类继承 233

6.2.1 继承数据成员 233

6.2.2 继承方法 234

6.2.3 覆盖基类方法 237

6.3 @override标记 239

6.4 选择基类访问属性 239

6.5 多态 240

6.6 多级继承 246

6.7 抽象类 246

6.8 通用超类 247

6.8.1 tostring()方法 249

6.8.2 判定对象的类型 249

6.8.3 复制对象 250

6.9 接受可变数目参数的方法 255

6.10 转换对象 256

6.10.1 转换对象的时机 258

6.10.2 识别对象 259

6.11 枚举进阶 260

6.12 设计类 264

6.13 使用final修饰符 274

6.14 接口 275

6.14.1 在程序中封装常量 275

6.14.2 用接口声明方法 278

6.14.3 扩展接口 281

6.14.4 使用接口 282

6.14.5 将接口类型作为方法的参数使用 288

6.14.6 在接口定义中嵌套类 289

6.14.7 接口与真实环境 289

6.15 匿名类 289

6.16 小结 290

第7章 异常 293

7.1 异常的基本思想 293

7.2 异常类型 294

7.2.1 error类型的异常 295

7.2.2 runtimeexception类型的异常 295

7.2.3 exception类的其他子类 295

7.3 处理异常 295

7.3.1 设定方法能够抛出的异常 296

7.3.2 处理异常 296

7.3.3 try代码块 296

7.3.4 catch代码块 297

7.3.5 在一个代码块中捕获多种异常类型 301

7.3.6 finally代码块 301

7.3.7 构造方法 302

7.3.8 执行顺序 303

7.3.9 嵌套的try代码块 309

7.3.10 重新抛出异常 309

7.4 异常对象 310

7.4.1 throwable类 310

7.4.2 标准异常 313

7.5 定义自己的异常 313

7.5.1 定义异常类 313

7.5.2 抛出自己的异常 315

7.5.3 异常的抛出策略 315

7.6 小结 320

第8章 理解流 323

8.1 流与输入输出操作 323

8.2 流的概念 324

8.2.1 输入流与输出流 324

8.2.2 二进制流与字符流 325

8.3 输入输出类 326

8.3.1 基本的输入流操作 327

8.3.2 缓冲输入流 327

8.3.3 基本的输出流操作 328

8.3.4 流读取器和编写器 329

8.4 标准流 332

8.4.1 从键盘读入数据 333

8.4.2 写到命令行中 340

8.4.3 printf()方法 340

8.4.4 将数据格式化为字符串 345

8.5 小结 346

第9章 访问文件与目录 349

9.1 访问文件系统 349

9.2 使用path对象 351

9.2.1 访问系统属性 353

9.2.2 设置系统属性 355

9.2.3 测试和检查path对象 355

9.2.4 查询文件和目录 356

9.2.5 获取文件属性 357

9.2.6 其他的路径操作 360

9.3 创建与删除目录和文件 361

9.3.1 创建目录 361

9.3.2 创建文件 363

9.3.3 删除文件和目录 364

9.4 获取目录内容 365

9.5 关闭流 366

9.6 移动与复制文件和目录 368

9.6.1 对文件或目录重命名 369

9.6.2 复制文件和目录 370

9.6.3 遍历文件树 375

9.7 小结 378

第10章 写文件 381

10.1 文件i/o基础 381

10.2 文件输出 382

10.3 通过输出流写文件 383

10.4 使用writer写文件 386

10.5 缓冲区 389

10.5.1 缓冲区的容量 389

10.5.2 缓冲区的位置和限制 390

10.5.3 设置位置和限制 391

10.5.4 创建缓冲区 392

10.5.5 标记缓冲区 396

10.5.6 缓冲区数据传输 397

10.5.7 使用视图缓冲区 399

10.5.8 准备缓冲区以输出到文件中 400

10.6 使用通道写文件 401

10.6.1 通道接口 402

10.6.2 通道操作 403

10.6.3 为文件获取通道 403

10.6.4 通道写操作 404

10.7 文件写操作 406

10.7.1 将缓冲区的一部分写入到文件中 406

10.7.2 文件的位置 409

10.7.3 使用视图缓冲区加载字节缓冲区 410

10.7.4 将变长字符串写入到文件中 410

10.7.5 直接和间接缓冲区 416

10.7.6 使用通道写入数值数据 417

10.7.7 将混合数据写入到文件中 421

10.7.8 从多个缓冲区写入 427

10.8 强制将数据写入到设备中 430

10.9 小结 431

第11章 读文件 433

11.1 文件读取操作 433

11.1.1 使用输入流读取文件 434

11.1.2 使用缓冲读取器读取文件 437

11.2 使用通道读取文件 439

11.2.1 读取文本文件 441

11.2.2 从缓冲区获取数据 442

11.2.3 读取二进制数据 444

11.2.4 读取混合数据 446

11.2.5 压缩缓冲区 449

11.3 复制文件 452

11.4 随机访问文件 455

11.5 内存映射文件 460

11.5.1 锁住文件 463

11.5.2 锁住文件的特定部分 465

11.5.3 实用的文件加锁考量 465

11.6 小结 468

第12章 序列化对象 471

12.1 在文件中存储对象 471

12.2 将对象写入到文件中 472

12.2.1 将基本类型数据写入到对象流中 474

12.2.2 实现serializable接口 475

12.3 从文件读取对象 478

12.3.1 判定反序列化对象所属的类 481

12.3.2 使用对象序列化 482

12.3.3 手动序列化类 485

12.3.4 序列化问题和困难 486

12.4 小结 488

第13章 泛型 491

13.1 什么是泛型 491

13.2 定义泛型类 492

13.2.1 实现泛型类 493

13.2.2 实例化泛型类 495

13.2.3 泛型类实例在运行时的类型 500

13.2.4 泛型类实例之间的关系 502

13.2.5 多个类型参数 502

13.2.6 类型参数的作用域 503

13.2.7 泛型类的静态域 504

13.2.8 类型参数的边界 504

13.3 泛型类和泛型接口 508

13.3.1 实现针对容器类的基于

集合的循环 508

13.3.2 实现迭代器的功能 510

13.3.3 二叉树的参数化类型 512

13.4 原生类型的变量 523

13.5 使用通配符类型参数 524

13.5.1 针对通配符的约束 526

13.5.2 深入class类 529

13.6 数组与参数化类型 530

13.7 参数化方法 533

13.8 参数化类型及继承 539

13.9 总结 540

第14章 集合框架 543

14.1 理解集合框架 543

14.2 对象集合 544

14.2.1 集 544

14.2.2 序列 545

14.2.3 地图 546

14.3 迭代器 547

14.4 集合类 549

14.5 使用enumset 552

14.6 数组集合类 554

14.6.1 创建矢量 554

14.6.2 存储对象 557

14.6.3 检索对象 558

14.6.4 移除对象 560

14.6.5 搜索对象 561

14.6.6 应用矢量 562

14.6.8 对集合中的元素进行排序 566

14.6.9 堆栈存储器 567

14.7 链表 573

14.8 使用地图 575

14.8.1 散列过程 575

14.8.2 把自己的类用作键 576

14.8.3 创建hashmap容器 577

14.8.4 存储、检索和移除对象 578

14.8.5 处理地图中的所有元素 579

14.9 小结 589

14.10 练习 589

第15章 一组有用的类 591

15.1 数组的实用方法 591

15.1.1 填充数组 591

15.1.2 复制数组 593

15.1.3 比较数组 593

15.1.4 数组的排序 594

15.1.5 搜索数组 598

15.1.6 将数组的内容用作字符串 600

15.2 observable和observer对象 601

15.2.1 定义observable对象的类 602

15.2.2 observable类的方法 602

15.3 生成随机数 605

15.4 日期和时间 608

15.4.1 date类 608

15.4.2 解释date对象 609

15.4.3 公历 612

15.5 正则表达式 618

15.6 使用scanner对象 637

15.6.1 创建scanner对象 637

15.6.2 从scanner对象获取输入 638

15.6.3 测试标记 640

15.6.4 为标记定义自己的模式 641

15.7 小结 642

15.8 练习 642

第16章 线程 645

16.1 理解线程 645

16.1.1 创建线程 647

16.1.2 停止线程 652

16.1.3 连接线程 653

16.1.4 线程的调度 654

16.1.5 实现runnable接口 654

16.2 管理线程 656

16.2.1 同步 657

16.2.2 死锁 672

16.3 使用执行器 674

16.3.1 使用执行器 674

16.3.2 执行callable[v]任务 675

16.3.3 future[v]对象方法 675

16.3.4 关闭线程池 676

16.4 线程优先级 685

16.5 小结 687

16.6 练习 687

第17章 创建窗口 689

17.1 java中的图形用户界面 689

17.2 创建窗口 691

17.2.1 设计窗口 692

17.2.2 在gui代码中禁止死锁 692

17.3 组件和容器 696

17.3.1 window和frame组件 697

17.3.2 window面板 698

17.4 组件的基础知识 699

17.4.1 组件的属性 699

17.4.2 组件的大小和位置 700

17.4.2 点和矩形 703

17.4.3 组件的可视化特性 706

17.4.4 swing 组件 714

17.5 使用swing容器 716

17.6 容器的布局管理器 718

17.6.1 流布局管理器 719

17.6.2 使用边界布局管理器 724

17.6.3 使用卡片布局管理器 726

17.6.4 使用网格布局管理器 728

17.6.5 使用boxlayout管理器 730

17.6.7 使用gridbaglayout管理器 736

17.6.8 使用springlayout管理器 743

17.7 向窗口中添加菜单 750

17.7.1 创建jmenu和jmenuitem对象 750

17.7.2 创建菜单 751

17.7.3 为菜单添加菜单项 753

17.7.4 添加菜单快捷键和加速器 757

17.8 小结 759

17.9 练习 759

第18章 处理事件 761

18.1 交互式java程序 761

18.2 事件处理过程 763

18.3 事件类 764

18.3.1 低级事件类 764

18.3.2 使窗口处理自己的事件 766

18.3.3 允许其他低级事件 768

18.3.4 低级事件监听器 769

18.3.5 使用适配器类 774

18.3.6 语义事件 776

18.3.7 语义事件监听器 776

18.4 applet中语义事件的处理 777

18.4.1 其他事件处理方式 785

18.4.2 处理低级事件和语义事件 787

18.5 应用程序中的语义事件监听器 788

18.6 使用动作 794

18.6.1 action接口 794

18.6.2 action方法 795

18.6.3 把动作用作菜单项 796

18.6.4 定义action类 797

18.7 添加工具栏 803

18.8 添加菜单图标 812

18.9 添加工具提示 813

18.10 禁用动作 815

18.11 小结 815

18.12 练习 815

第19章 在窗口中绘图 817

19.1 使用模型/视图体系结构 817

19.2 组件坐标系统 821

19.3 在组件上绘图 822

19.3.1 图形环境 822

19.3.2 绘图过程 825

19.3.3 渲染操作 826

19.4 形状 826

19.4.1 定义点的类 826

19.4.2 直线和矩形 827

19.4.3 圆弧和椭圆 832

19.4.4 曲线 835

19.4.5 复杂路径 843

19.5 填充图形 848

19.6 管理图形 853

19.6.1 存储模型中的图形 854

16.6.2 绘制图形 856

19.7 用鼠标绘图 857

19.7.1 处理鼠标事件 857

19.8 定义自己的图形类 864

19.8.1 定义直线 865

19.8.2 定义矩形 866

19.8.3 定义圆 868

19.8.4 绘制曲线 871

19.9 修改光标 873

19.10 小结 874

19.11 练习 874

第20章 扩展gui 875

20.1 创建状态栏 875

20.1.1 用于sketcher的状态栏类 876

20.1.2 更新面板 878

20.2 使用对话框 880

20.2.1 模态对话框和非模态对话框 881

20.2.2 一个简单的模态对话框 882

20.2.3 即时消息对话框 885

20.2.4 即时输入对话框 887

20.3 使用对话框创建文本元素 889

20.3.1 为文本定义菜单项和工具栏按钮 889

20.3.2 定义文本类 891

20.3.3 创建文本元素 892

20.4 字体选择对话框 895

20.4.1 fontdialog类 896

20.4.2 创建字体对话框按钮 896

20.4.3 添加数据面板 898

20.4.4 实现字体列表 899

20.4.5 显示所选的字体 901

20.4.6 使用分隔面板 902

20.4.7 使用微调按钮 903

20.4.8 使用单选按钮来选择字体样式 905

20.4.9 监听单选按钮 906

20.5 弹出式菜单 908

20.5.1 显示弹出式菜单 910

20.5.2 实现上下文菜单 913

20.7 变换用户坐标系统 921

20.8 选择自定义颜色 937

20.8.1 使用缓存的图像 938

20.8.2 使用jcolorchooser对话框 938

20.8.3 添加自定义颜色gui 939

20.8.4 显示颜色选择对话框 941

20.9 小结 942

20.10 练习 943

第21章 填充和打印文档 945

21.1 串行化草图 945

21.1.1 实现串行化 946

21.1.2 串行化元素列表 946

21.2 用来保存草图的基本架构 946

21.2.1 指定文件名 946

21.2.1 验证草图的目录 947

21.2.3 记录草图是否修改 948

21.2.4 处理file菜单事件 949

21.3 使用文件选择器 950

21.3.1 显示文件保存对话框 950

21.3.2 显示文件打开对话框 951

21.3.3 定制文件选择对话框 951

21.4 实现文件操作 953

21.4.1 创建定制的文件对话框 954

21.4.2 实现保存操作 955

21.4.3 实现save as操作 959

21.4.4 实现文件打开操作 961

21.4.5 启动新草图 963

21.4.6 禁止在关闭时丢失数据 964

21. 5 在java中打印 966

21.5.1 创建和使用printerjob对象 967

21.5.2 打印页面 970

21.5.3 打印整个草图 974

21.5.4 横向打印 978

21.5.5 提高打印性能 980

21.2.6 实现页面设置 981

21.5.7 使用java打印对话框 984

21.5.8 多页面文档的打印 987

21.5.9 使用book对象进行打印 995

21.5.10 打印swing组件 997

21.6 小结 999

21.7 练习 1000

第22章 java和xml 1001

22.1 xml 1001

22.1.1 xml的作用 1002

22.1.2 在java中处理xml 1002

22.2 xml文档结构 1002

22.2.1 结构良好的xml文档 1003

22.2.2 有效的xml文档 1004

22.2.3 xml文档中的元素 1004

22.2.4 元素的属性 1008

22.3 xml中的数据结构 1011

22.4 文档类型定义 1011

22.4.1 声明dtd 1012

22.4.2 定义dtd 1013

22.4.3 sketcher的dtd 1019

22.5 结构良好的文档的规则 1023

22.6 xml名称空间 1024

22.6.1 名称空间声明 1024

22.6.2 xml名称空间和dtd 1026

22.7 xml 模式 1026

22.7.1 定义模式 1027

22.7.2 定义模式元素 1028

22.7.3 指定数据类型 1029

22.7.4 定义复杂元素的属性 1029

22.7.5 值的限制 1030

22.7.6 定义属性组 1031

22.7.7 指定一组元素选项 1031

22.8 sketcher模式 1032

22.8.1 定义直线元素 1033

22.8.2 定义矩形元素类型 1035

22.8.3 定义圆元素类型 1035

22.8.4 定义曲线元素类型 1036

22.8.5 定义文本元素类型 1037

22.8.6 完整的sketcher模式 1037

22.8.7 使用模式的文档 1041

22.9 用xml文档编程 1041

22.9.1 sax 处理 1042

22.9.2 dom 处理 1043

22.10 访问解析器 1043

22.11 使用sax 1044

22.11.1 解析器的属性和特征 1046

22.11.2 用sax解析文档 1048

22.11.3 实现sax处理程序 1049

22.11.4 处理其他解析事件 1058

22.11.5 解析模式实例文档 1059

22.12 小结 1064

22.13 练习 1064

第23章 创建和修改xml文档 1067

23.1 文档对象模型 1067

23.2 设置dom解析器的特征 1069

23.3 解析文档 1070

23.4 导航document对象树 1071

23.4.1 节点类型 1072

23.4.2 可忽略的空白和元素内容 1077

23.4.3 访问属性 1078

23.5 转换xml 1081

23.6 创建document对象 1085

23.7 把草图存储为xml文档 1089

23.7.1 添加元素节点 1090

23.7.2 为完成的草图创建document对象 1097

23.7.3 把草图保存为xml文件 1099

23.8 读取草图的xml表示 1103

23.8.1 从xml中创建基类对象 1103

23.8.2 从xml节点中创建元素 1105

23.8.3 处理import xml事件 1109

23.8.4 读取xml文件 1110

23.8.5 创建模型 1111

23.9 小结 1114

23.10 练习 1114

附录a 关键字 1117

附录b 计算机的算术 1119