Java 7入门经典

(美) 霍尔顿(Horton, I.)

文学

入门 编程 Java 计算机 经典

2012-7-1

清华大学出版社

目录
第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任务 675 16.3.3 Future对象方法 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
【展开】
内容简介
无论学习Java是为了编写嵌入网页的定制applet,还是为了编写大型应用程序,本书都十分适合阅读。本书是关于Java语言讲解最为细致、全面的入门书籍,介绍了使用最新的Java JDK 7开发程序所需要的所有基础知识。书中包含大量的示例,清晰地解释了涉及的关键概念,演示了Java开发的复杂细节。在阅读各个章节的过程中,您还能获得无价的编程经验,并逐步开始编写功能全面的Java程序。Ivor Horton在编写入门类编程图书方面独具心得,著作深受好评。Java SE 7相对之前发布版本更新了超过30%的语言特性,本书从基础知识入门,介绍了使用这一最新发布版本编写Java程序的方方面面,涵盖了Java的所有语言新特性,可为读者打下坚实的基础。
【展开】
下载说明

1、追日是作者栎年创作的原创作品,下载链接均为网友上传的的网盘链接!

2、相识电子书提供优质免费的txt、pdf等下载链接,所有电子书均为完整版!

下载链接