img
share 分享

零基础轻松学Java

作者:张洪波

出版社:机械工业出版社

ISBN:9787111611301

VIP会员免费 (仅需0.8元/天) ¥ 30.0

温馨提示: 价值40000元的1000本电子书,VIP会员随意看哦!

电子书推荐

更多资源 展开

PDF高清扫描-带书签-《Java完全参考手册(第8版)》.((美)Herbert Schildt).[PDF].&ckook; 评分:

第Ⅰ部分 Java 语言 第1 章 Java 的历史和演变 .................... 3 1.1 Java 的家世 ................................. 4 1.1.1 现代编程语言的诞生:C 语言 ...................................... 4 1.1.2 C++:下一个阶段 ................... 5 1.1.3 Java 出现的时机已经成熟 ..... 6 1.2 Java 的诞生 ................................. 6 1.3 Java 改变Internet 的方式 ........... 8 1.3.1 Java applet ................................ 8 1.3.2 安全性 ...................................... 8 1.3.3 可移植性 .................................. 9 1.4 Java 的魔力:字节码 ................. 9 1.5 servlet:服务器端的Java ......... 10 1.6 Java 的关键特性 ....................... 10 1.6.1 简单性 ................................... 10 1.6.2 面向对象 ............................... 11 1.6.3 健壮性 ................................... 11 1.6.4 多线程 ................................... 11 1.6.5 体系结构中立 ....................... 11 1.6.6 解释执行和高性能................ 12 1.6.7 分布式 ................................... 12 1.6.8 动态性 ................................... 12 1.7 Java 的演变历程 ....................... 12 1.8 文化革新 ................................... 15 VIII 第2 章 Java 综述 ................................ 17 2.1 面向对象编程 ........................... 17 2.1.1 两种范式 ................................ 18 2.1.2 抽象........................................ 18 2.1.3 OOP 三原则 ........................... 19 2.2 第一个简单程序 ....................... 23 2.2.1 输入程序 ................................ 23 2.2.2 编译程序 ................................ 23 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 注释........................................ 32 2.6.5 分隔符 .................................... 33 2.6.6 Java 关键字 ............................ 33 2.7 Java 类库 ................................... 34 第3 章 数据类型、变量和数组 ............ 35 3.1 Java 是强类型化的语言 ........... 35 3.2 基本类型 ................................... 36 3.3 整型 ........................................... 36 3.3.1 byte ......................................... 37 3.3.2 short........................................ 37 3.3.3 int ........................................... 37 3.3.4 long ........................................ 37 3.4 浮点型 ....................................... 38 3.4.1 float ........................................ 38 3.4.2 double ..................................... 39 3.5 字符型 ....................................... 39 3.6 布尔型 ....................................... 41 3.7 深入分析字面值 ....................... 42 3.7.1 整型字面值 ............................ 42 3.7.2 浮点型字面值 ....................... 43 3.7.3 布尔型字面值 ....................... 44 3.7.4 字符型字面值 ....................... 44 3.7.5 字符串字面值 ....................... 44 3.8 变量 ........................................... 45 3.8.1 变量的声明 ........................... 45 3.8.2 动态初始化 ........................... 45 3.8.3 变量的作用域和生命周期.... 46 3.9 类型转换和强制类型转换 ........ 48 3.9.1 Java 的自动类型转换 ........... 49 3.9.2 强制转换不兼容的类型 ........ 49 3.10 表达式中的自动类型提升 ...... 50 3.11 数组 .......................................... 52 3.11.1 一维数组 ............................ 52 3.11.2 多维数组 ............................ 54 3.11.3 另一种数组声明语法 ........ 58 3.12 关于字符串的一些说明 .......... 59 3.13 向C/C++程序员提供指针方面的注解 ............................. 60 第4 章 运算符 ...................................... 61 4.1 算术运算符................................ 61 4.1.1 基本算术运算符 ................... 62 4.1.2 求模运算符 ........................... 63 4.1.3 算术与赋值复合运算符 ........ 64 4.1.4 自增与自减运算符................ 65 4.2 位运算符 ................................... 66 4.2.1 位逻辑运算符 ....................... 68 4.2.2 左移 ....................................... 70 4.2.3 右移 ....................................... 71 4.2.4 无符号右移 ........................... 73 4.2.5 位运算符与赋值的组合 ........ 74 4.3 关系运算符................................ 75 4.4 布尔逻辑运算符 ........................ 76 4.5 赋值运算符................................ 78 4.6 “?”运算符 .............................. 78 4.7 运算符的优先级 ........................ 79 4.8 使用圆括号................................ 80 第5 章 控制语句 .................................. 83 5.1 Java 的选择语句 ....................... 83 5.1.1 if 语句 .................................... 84 5.1.2 switch 语句 ............................ 87 5.2 迭代语句 ................................... 91 5.2.1 while 语句 .............................. 92 5.2.2 do-while 语句......................... 93 5.2.3 for 语句 .................................. 96 5.2.4 for 循环的for-each 版本 .... 100 5.2.5 嵌套的循环 ......................... 105 5.3 跳转语句 ................................. 106 5.3.1 使用break 语句 .................. 106 5.3.2 使用continue 语句 .............. 110 5.3.3 return 语句 ........................... 111 第6 章 类........................................... 113 6.1 类的基础知识 ......................... 114 6.1.1 类的一般形式 ...................... 114 6.1.2 一个简单的类 ...................... 115 6.2 声明对象 ................................. 117 6.3 为对象引用变量赋值 ............. 119 6.4 方法 ......................................... 120 6.4.1 为Box 类添加方法 ............ 120 6.4.2 返回值 ................................. 122 6.4.3 添加带参数的方法 ............. 124 6.5 构造函数 ................................. 126 6.6 this 关键字 .............................. 129 6.7 垃圾回收 ................................. 130 6.8 finalize()方法 ........................... 130 6.9 堆栈类 ..................................... 131 第7 章 方法和类的深入分析.............. 135 7.1 重载方法 ................................. 135 7.2 将对象用作参数 ..................... 140 7.3 参数传递的深入分析 ............. 143 7.4 返回对象 ................................. 145 7.5 递归 ......................................... 146 7.6 访问控制 ................................. 148 7.7 理解static ................................ 151 7.8 final 介绍 ................................. 153 7.9 重新审视数组.......................... 154 7.10 嵌套类和内部类 .................... 156 7.11 String 类介绍 ......................... 158 7.12 使用命令行参数 .................... 161 7.13 varargs:可变长度参数 ........ 162 7.13.1 重载varargs 方法 ............ 165 7.13.2 varargs 方法与模糊性 ..... 166 第8 章 继承 ....................................... 169 8.1 继承的基础知识 ...................... 169 8.1.1 成员访问与继承 ................. 171 8.1.2 一个更实际的例子.............. 172 8.1.3 超类变量可以引用子类对象 ..................................... 174 8.2 使用super 关键字 ................... 175 8.2.1 使用super 调用超类的构造函数 ............................. 176 8.2.2 super 的另一种用法 ............ 179 8.3 创建多级继承层次 .................. 180 8.4 构造函数的调用时机 .............. 183 8.5 方法重写 ................................. 184 8.6 动态方法调度.......................... 187 8.6.1 重写方法的目的 ................. 189 8.6.2 应用方法重写 ..................... 189 8.7 使用抽象类.............................. 191 8.8 在继承中使用final 关键字 .... 193 8.8.1 使用final 关键字阻止重写 ..................................... 194 8.8.2 使用final 关键字阻止继承 ..................................... 194 8.9 Object 类 .................................. 195 第9 章 包和接口 ............................... 197 9.1 包 ............................................. 198 9.1.1 定义包 ................................. 198 9.1.2 包查找与CLASSPATH....... 199 9.1.3 一个简短的包示例.............. 199 9.2 访问保护 ................................. 200 9.3 导入包 ..................................... 204 9.4 接口 ......................................... 206 9.4.1 定义接口 ............................. 207 9.4.2 实现接口 ............................. 207 9.4.3 嵌套接口 ............................. 210 9.4.4 应用接口 .............................. 211 9.4.5 接口中的变量 ..................... 214 9.4.6 接口可以扩展 ..................... 216 第10 章 异常处理 .............................. 219 10.1 异常处理的基础知识 ........... 219 10.2 异常类型 ............................... 220 10.3 未捕获的异常 ....................... 221 10.4 使用try 和catch ................... 222 10.5 多条catch 子句 ..................... 224 10.6 嵌套的try 语句 ..................... 226 10.7 throw ...................................... 228 10.8 throws .................................... 229 10.9 finally ..................................... 230 10.10 Java 的内置异常 ................. 232 10.11 创建自己的异常子类 ......... 233 10.12 链式异常 ............................. 235 10.13 JDK 7 中3 个新的异常特性 ............................. 237 10.14 使用异常 ............................. 238 第11 章 多线程编程 .......................... 239 11.1 Java 线程模型 ....................... 240 11.1.1 线程优先级 ..................... 241 11.1.2 同步 ................................. 242 11.1.3 消息传递 ......................... 242 11.1.4 Thread 类和Runnable接口 ................................. 242 11.2 主线程 ................................... 243 11.3 创建线程 ............................... 244 11.3.1 实现Runnable 接口 ........ 245 11.3.2 扩展Thread 类 ............... 247 11.3.3 选择一种创建方式 ......... 248 11.4 创建多个线程 ....................... 248 11.5 使用isAlive()和join()方法 .... 250 11.6 线程优先级 ............................ 252 11.7 同步 ........................................ 253 11.7.1 使用同步方法 ................. 253 11.7.2 synchronized 语句 ........... 255 11.8 线程间通信 ............................ 257 11.9 挂起、恢复与停止线程 ........ 263 11.9.1 Java 1.1 以前使用的挂起、恢复和停止线程的方式 .... 264 11.9.2 挂起、恢复与停止线程的现代方式.......................... 266 11.10 获取线程的状态 .................. 268 11.11 使用多线程 .......................... 270 第12 章 枚举、自动装箱与注解(元数据) ............................... 271 12.1 枚举 ....................................... 271 12.1.1 枚举的基础知识 ............. 272 12.1.2 values()和valueOf()方法 ................................. 274 12.1.3 Java 枚举是类类型 ......... 275 12.1.4 枚举继承自Enum 类 ...... 278 12.1.5 另一个枚举示例 ............. 279 12.2 类型封装器............................ 281 12.2.1 Character 封装器 ............. 281 12.2.2 Boolean 封装器 ............... 282 12.2.3 数值类型封装器 ............. 282 12.3 自动装箱 ............................... 283 12.3.1 自动装箱与方法 ............. 284 12.3.2 表达式中发生的自动装箱/拆箱................. 285 12.3.3 布尔型和字符型数值的自动装箱/拆箱................. 287 12.3.4 自动装箱/拆箱有助于防止错误.......................... 287 12.3.5 一些警告 ......................... 288 12.4 注解(元数据) ......................... 289 12.4.1 注解的基础知识 ............. 289 12.4.2 指定保留策略 ................. 289 12.4.3 在运行时使用反射获取注解 ................................. 290 12.4.4 AnnotatedElement 接口 .... 296 12.4.5 使用默认值 ..................... 296 12.4.6 标记注解......................... 297 12.4.7 单成员注解 ..................... 298 12.4.8 内置注解......................... 300 12.4.9 一些限制......................... 301 第13 章 I/O、applet 以及其他主题 ...... 303 13.1 I/O 的基础知识 ..................... 304 13.1.1 流 .................................... 304 13.1.2 字节流和字符流 ............. 304 13.1.3 预定义流......................... 306 13.2 读取控制台输入 ................... 307 13.2.1 读取字符......................... 307 13.2.2 读取字符串 ..................... 308 13.3 向控制台写输出 ................... 310 13.4 PrintWriter 类 ........................ 311 13.5 读/写文件 .............................. 312 13.6 自动关闭文件 ....................... 318 13.7 applet 的基础知识................. 321 13.8 transient 和volatile 修饰符 .... 324 13.9 使用instanceof 运算符 ......... 324 13.10 strictfp .................................. 327 13.11 本地方法 ............................. 327 13.12 使用断言 ............................. 331 13.13 静态导入 ............................. 334 13.14 通过this()调用重载的构造函数 ............................. 336 第14 章 泛型 ..................................... 339 14.1 什么是泛型 ........................... 340 14.2 一个简单的泛型示例 ........... 340 14.2.1 泛型只使用对象 ............. 344 14.2.2 基于不同类型参数的泛型类型是不同的 ......... 344 14.2.3 泛型提升类型安全性的原理 ................................. 344 14.3 带两个类型参数的泛型类 .... 347 14.4 泛型类的一般形式 ................ 348 14.5 有界类型 ............................... 349 14.6 使用通配符参数 .................... 351 14.7 创建泛型方法........................ 359 14.8 泛型接口 ............................... 362 14.9 原始类型与遗留代码 ............ 364 14.10 泛型类层次.......................... 367 14.10.1 使用泛型超类 ............. 367 14.10.2 泛型子类 ..................... 369 14.10.3 泛型层次中的运行时类型比较 ..................... 370 14.10.4 强制转换 ..................... 373 14.10.5 重写泛型类的方法 ..... 373 14.11 泛型的类型推断 .................. 374 14.12 擦拭 ..................................... 376 14.13 模糊性错误.......................... 379 14.14 使用泛型的一些限制 .......... 381 14.14.1 不能实例化类型参数 ... 381 14.14.2 对静态成员的一些限制 ............................. 381 14.14.3 对泛型数组的一些限制 ............................. 382 14.14.4 对泛型异常的限制 ..... 383 第Ⅱ部分 Java 库 第15 章 字符串处理 .......................... 387 15.1 String 类的构造函数 ............. 388 15.2 字符串的长度........................ 390 15.3 特殊的字符串操作 ................ 391 15.3.1 字符串字面值 ................. 391 15.3.2 字符串连接 ..................... 391 15.3.3 字符串和其他数据类型的连接 ..................... 392 15.3.4 字符串转换和toString()方法 ................................. 393 15.4 提取字符 ............................... 394 15.4.1 charAt() ........................... 394 15.4.2 getChars() ........................ 394 15.4.3 getBytes() ........................ 395 15.4.4 toCharArray() .................. 395 15.5 比较字符串 ........................... 395 15.5.1 equals()和equalsIgnoreCase() .......... 395 15.5.2 regionMatches() .............. 396 15.5.3 startsWith()和endsWith() ....................... 397 15.5.4 equals()与== ................... 397 15.5.5 compareTo() .................... 398 15.6 查找字符串 ........................... 399 15.7 修改字符串 ........................... 401 15.7.1 substring() ....................... 401 15.7.2 concat() ........................... 402 15.7.3 replace() .......................... 402 15.7.4 trim() ............................... 403 15.8 使用valueOf()转换数据 ....... 404 15.9 改变字符串中字符的大小写 ................................... 404 15.10 其他String 方法 .................. 405 15.11 StringBuffer 类 .................... 406 15.11.1 StringBuffer 类的构造函数 .................... 406 15.11.2 length()与capacity() ... 407 15.11.3 ensureCapacity() ......... 407 15.11.4 setLength() .................. 408 15.11.5 charAt()与setCharAt() ................. 408 15.11.6 getChars() ................... 409 15.11.7 append() ...................... 409 15.11.8 insert() ......................... 409 15.11.9 reverse() ...................... 410 15.11.10 delete()与deleteCharAt()............ 411 15.11.11 replace() ..................... 411 15.11.12 substring() .................. 412 15.11.13 其他StringBuffer方法 ........................... 412 15.12 StringBuilder 类 ................... 413 第16 章 探究java.lang ..................... 415 16.1 基本类型封装器 .................... 416 16.1.1 Number ............................ 416 16.1.2 Double 与Float ............... 417 16.1.3 理解isInfinite()与isNaN() ............................ 420 16.1.4 Byte、Short、Integer 和Long ................................. 420 16.1.5 Character .......................... 427 16.1.6 对Unicode 代码点的附加支持 ......................... 430 16.1.7 Boolean ............................ 431 16.2 Void 类 ................................... 432 16.3 Process 类 .............................. 432 16.4 Runtime 类 ............................. 433 16.4.1 内存管理 ......................... 434 16.4.2 执行其他程序 ................. 435 16.5 ProcessBuilder 类 .................. 436 16.6 System 类 ............................... 439 16.6.1 使用currentTimeMillis()计时程序的执行 ............. 440 16.6.2 使用arraycopy() .............. 441 16.6.3 环境属性 ......................... 442 16.7 Object 类 ................................ 442 16.8 使用clone()方法和Cloneable接口 ....................................... 443 16.9 Class 类 .................................. 445 16.10 ClassLoader 类 ..................... 448 16.11 Math 类 ................................ 448 16.11.1 三角函数 ..................... 448 16.11.2 指数函数 ..................... 449 16.11.3 舍入函数 ..................... 449 16.11.4 其他数学方法 ............. 450 16.12 StrictMath 类 ....................... 452 16.13 Compiler 类 ......................... 452 16.14 Thread 类、ThreadGroup 类和Runnable 接口 ................ 452 16.14.1 Runnable 接口 ............ 452 16.14.2 Thread 类 .................... 452 16.14.3 ThreadGroup 类 .......... 454 16.15 ThreadLocal 和 InheritableThreadLocal 类 .... 459 16.16 Package 类 ........................... 459 16.17 RuntimePermission 类 ......... 460 16.18 Throwable 类 ....................... 460 16.19 SecurityManager 类 ............. 460 16.20 StackTraceElement 类 ......... 460 16.21 Enum 类 ............................... 461 16.22 ClassValue 类 ...................... 462 16.23 CharSequence 接口 ............. 462 16.24 Comparable 接口 ................. 462 16.25 Appendable 接口 ................. 463 16.26 Iterable 接口 ........................ 463 16.27 Readable 接口 ..................... 464 16.28 AutoCloseable 接口 ............. 464 16.29 Thread.UncaughtException-Handler 接口 ....................... 464 16.30 java.lang 子包 ...................... 464 16.30.1 java.lang.annotation .... 465 16.30.2 java.lang.instrument .... 465 16.30.3 java.lang.invoke .......... 465 16.30.4 java.lang.management ... 465 16.30.5 java.lang.ref ................ 465 16.30.6 java.lang.reflect........... 465 第17 章 java.util 第1 部分:集合框架 .............................. 467 17.1 集合概述 ............................... 468 17.2 JDK 5 对集合框架的修改 .... 469 17.2.1 泛型从根本上改变了集合框架 ......................... 470 17.2.2 自动装箱使得使用基本类型更加容易 ................. 470 17.2.3 for-each 风格的循环 ....... 470 17.3 集合接口 ............................... 470 17.3.1 Collection 接口 ................ 471 17.3.2 List 接口 .......................... 473 17.3.3 Set 接口 ........................... 474 17.3.4 SortedSet 接口 ................. 474 17.3.5 NavigableSet 接口 ........... 475 17.3.6 Queue 接口 ...................... 476 17.3.7 Deque 接口 ...................... 477 17.4 集合类 ................................... 479 17.4.1 ArrayList 类 ..................... 480 17.4.2 LinkedList 类 ................... 483 17.4.3 HashSet 类 ....................... 484 17.4.4 LinkedHashSet 类 ............ 486 17.4.5 TreeSet 类 ........................ 486 17.4.6 PriorityQueue 类 .............. 487 17.4.7 ArrayDeque 类 ................. 488 17.4.8 EnumSet 类 ...................... 489 17.5 通过迭代器访问集合 ............ 490 17.5.1 使用迭代器 ..................... 491 17.5.2 使用for-each 循环替代迭代器 ............................. 493 17.6 在集合中存储用户定义的类................................ 494 17.7 RandomAccess 接口 .............. 495 17.8 使用映射 ............................... 496 17.8.1 映射接口 ......................... 496 17.8.2 映射类 ............................. 500 17.9 比较器 ................................... 505 17.10 集合算法.............................. 508 17.11 Arrays 类 .............................. 513 17.12 需要泛型集合的原因 .......... 518 17.13 遗留的类和接口 .................. 521 17.13.1 Enumeration 接口 ....... 521 17.13.2 Vector 类 ..................... 521 17.13.3 Stack 类 ....................... 525 17.13.4 Dictionary 类 .............. 527 17.13.5 Hashtable 类 ............... 528 17.13.6 Properties 类 ............... 532 17.13.7 使用store()和load() .... 535 17.14 集合小结 ............................. 537 第18 章 java.util 第2 部分:更多实用工具类 ................................. 539 18.1 StringTokenizer 类 ................. 539 18.2 BitSet 类 ................................ 541 18.3 Date 类 ................................... 544 18.4 Calendar 类 ............................ 546 18.5 GregorianCalendar 类 ............ 549 18.6 TimeZone 类 .......................... 550 18.7 SimpleTimeZone 类 .............. 551 18.8 Locale 类 ............................... 552 18.9 Random 类 ............................. 554 18.10 Observable 类 ...................... 555 18.10.1 Observer 接口 ............. 556 18.10.2 Observer 示例 ............. 556 18.11 Timer 和TimerTask 类 ........ 559 18.12 Currency 类 ......................... 561 18.13 Formatter 类 ........................ 562 18.13.1 Formatter 类的构造函数 .................... 563 18.13.2 Formatter 类的方法 .... 563 18.13.3 格式化的基础知识 .... 564 18.13.4 格式化字符串和字符 ... 566 18.13.5 格式化数字 ................ 566 18.13.6 格式化时间和日期 .... 567 18.13.7 %n 和%%说明符 ....... 569 18.13.8 指定最小字段宽度 .... 569 18.13.9 指定精度 .................... 571 18.13.10 使用格式标志 .......... 572 18.13.11 对齐输出 .................. 572 18.13.12 空格、“+”、“0”以及“(”标志 ................... 573 18.13.13 逗号标志 .................. 574 18.13.14 “#:”标志 ............... 574 18.13.15 大写选项 ................... 574 18.13.16 使用参数索引 ........... 575 18.13.17 关闭Formatter 对象 ... 577 18.13.18 printf()方法 ............... 577 18.14 Scanner 类 ............................ 577 18.14.1 Scanner 类的构造函数 ..................... 577 18.14.2 扫描的基础知识 ......... 578 18.14.3 一些Scanner 示例 ...... 581 18.14.4 设置定界符 ................. 585 18.14.5 其他Scanner 特性 ...... 587 18.15 ResourceBundle、ListResourceBundle 和PropertyResourceBundle 类.... 588 18.16 其他实用工具类和接口 ...... 592 18.17 java.util 子包........................ 593 18.17.1 java.util.concurrent、 java.util.concurrent.atomic 和java.util.concurrent. locks ............................ 593 18.17.2 java.util.jar ................... 593 18.17.3 java.util.logging ........... 593 18.17.4 java.util.prefs ............... 593 18.17.5 java.util.regex .............. 594 18.17.6 java.util.spi .................. 594 18.17.7 java.util.zip .................. 594 第19 章 输入/输出:探究Java.io ...... 595 19.1 I/O 类和接口 ......................... 596 19.2 File 类 .................................... 597 19.2.1 目录 ................................. 600 19.2.2 使用FilenameFilter 接口 ................................. 601 19.2.3 listFiles()方法 .................. 602 19.2.4 创建目录 ......................... 602 19.3 AutoCloseable、Closeable 和 Flushable 接口 ....................... 602 XV 19.4 I/O 异常 ................................. 603 19.5 关闭流的两种方式 ............... 604 19.6 流类 ....................................... 605 19.7 字节流 ................................... 605 19.7.1 InputStream 类 ................ 605 19.7.2 OutputStream 类 ............. 606 19.7.3 FileInputStream 类 .......... 606 19.7.4 FileOutputStream 类 ....... 609 19.7.5 ByteArrayInputStream 类 ..................................... 611 19.7.6 ByteArrayOutputStream 类 .................................... 613 19.7.7 过滤的字节流 ................. 614 19.7.8 缓存的字节流 ................. 614 19.7.9 SequenceInputStream 类 .... 618 19.7.10 PrintStream 类 ............... 620 19.7.11 DataOutputStream 和 DataInputStream 类 ...... 622 19.7.12 RandomAccessFile 类 ... 624 19.8 字符流 ................................... 625 19.8.1 Reader 类 ........................ 625 19.8.2 Writer 类 ......................... 626 19.8.3 FileReader 类 .................. 627 19.8.4 FileWriter 类 ................... 627 19.8.5 CharArrayReader 类 ....... 628 19.8.6 CharArrayWriter 类 ........ 630 19.8.7 BufferedReader 类 .......... 631 19.8.8 BufferedWriter 类 ........... 633 19.8.9 PushbackReader 类 ......... 633 19.8.10 PrintWriter 类 ................ 634 19.9 Console 类 ............................. 635 19.10 串行化 ................................. 637 19.10.1 Serializable 接口 ........ 637 19.10.2 Externalizable 接口 .... 637 19.10.3 ObjectOutput 接口 ...... 638 19.10.4 ObjectOutputStream 类 ................................ 638 19.10.5 ObjectInput 接口 ........ 639 19.10.6 ObjectInputStream 类 .... 640 19.10.7 串行化示例 ................. 641 19.11 流的优点 .............................. 642 第20 章 探究NIO ............................. 643 20.1 NIO 类 ................................... 643 20.2 NIO 的基础知识 ................... 644 20.2.1 缓存 ................................. 644 20.2.2 通道 ................................. 646 20.2.3 字符集和选择器 ............. 647 20.3 JDK 7 对NIO 的增强 ........... 648 20.3.1 Path 接口 ......................... 648 20.3.2 Files 类 ............................ 649 20.3.3 Path 接口 ......................... 651 20.3.4 文件属性接口 ................. 652 20.3.5 FileSystem、FileSystems 和FileStore 类 ................ 654 20.4 使用NIO 系统 ...................... 654 20.4.1 为基于通道的I/O 使用 NIO .................................. 654 20.4.2 为基于流的I/O 使用NIO ......................... 663 20.4.3 为路径和文件系统操作 使用NIO ......................... 666 20.5 JDK 7 之前基于通道的 例子 ....................................... 674 20.5.1 读文件(JDK 7 之前) ....... 674 20.5.2 写文件(JDK 7 之前) ....... 677 第21 章 联网 ..................................... 681 21.1 联网的基础知识 .................... 682 21.2 联网类和接口........................ 683 21.3 InetAddress 类 ....................... 683 21.3.1 工厂方法 ......................... 684 21.3.2 实例方法 ......................... 685 21.4 Inet4Address 类和 Inet6Address 类...................... 685 21.5 TCP/IP 客户端套接字 ........... 686 21.6 URL 类 .................................. 689 XVI 21.7 URLConnection 类 ................ 691 21.8 HttpURLConnection 类 ......... 694 21.9 URI 类 ................................... 696 21.10 cookie................................... 696 21.11 TCP/IP 服务器套接字 ........ 696 21.12 数据报 ................................. 697 21.12.1 DatagramSocket 类 ..... 697 21.12.2 DatagramPacket 类 ..... 698 21.12.3 数据报示例 ................ 699 第22 章 Applet 类 ............................. 701 22.1 applet 的两种类型................. 701 22.2 applet 的基础知识................. 702 22.3 applet 的架构 ........................ 704 22.4 applet 的骨架 ........................ 705 22.4.1 applet 的初始化和终止 ... 706 22.4.2 重写update()方法 .......... 707 22.5 简单的applet 显示方法 ........ 707 22.6 请求重画 ............................... 709 22.7 使用状态栏窗口 ................... 712 22.8 HTML APPLET 标签 ............ 713 22.9 向applet 传递参数................ 714 22.10 getDocumentBase()和 getCodeBase() ...................... 718 22.11 AppletContext 接口和 showDocument()方法 .......... 718 22.12 AudioClip 接口 ................... 720 22.13 AppletStub 接口 .................. 720 22.14 向控制台输出 ..................... 720 第23 章 事件处理 .............................. 721 23.1 两种事件处理机制 ............... 722 23.2 委托事件模型 ....................... 722 23.2.1 事件 ................................ 722 23.2.2 事件源 ............................ 723 23.2.3 事件监听器 ..................... 723 23.3 事件类 ................................... 724 23.3.1 ActionEvent 类 ............... 725 23.3.2 AdjustmentEvent 类 ........ 726 23.3.3 ComponentEvent 类 ........ 726 23.3.4 ContainerEvent 类 ........... 727 23.3.5 FocusEvent 类 ................. 727 23.3.6 InputEvent 类................... 728 23.3.7 ItemEvent 类 .................... 729 23.3.8 KeyEvent 类 .................... 730 23.3.9 MouseEvent 类 ................ 730 23.3.10 MouseWheelEvent 类 .... 732 23.3.11 TextEvent 类 .................. 733 23.3.12 WindowEvent 类 ........... 733 23.4 事件源 ................................... 734 23.5 事件监听器接口 .................... 735 23.5.1 ActionListener 接口 ........ 736 23.5.2 AdjustmentListener 接口 ................................. 736 23.5.3 ComponentListener 接口 ................................. 736 23.5.4 ContainerListener 接口 .... 736 23.5.5 FocusListener 接口 .......... 736 23.5.6 ItemListener 接口 ............ 736 23.5.7 KeyListener 接口 ............. 737 23.5.8 MouseListener 接口 ........ 737 23.5.9 MouseMotionListener 接口 ................................. 737 23.5.10 MouseWheelListener 接口 ............................... 737 23.5.11 TextListener 接口 .......... 738 23.5.12 WindowFocusListener 接口 ............................... 738 23.5.13 WindowListener 接口 .... 738 23.6 使用委托事件模型 ................ 738 23.6.1 处理鼠标事件 ................. 739 23.6.2 处理键盘事件 ................. 741 23.7 适配器类 ............................... 744 23.8 内部类 ................................... 746 第24 章 AWT 介绍:使用窗口、 图形和文本 .......................... 749 24.1 AWT 类 .................................. 750 24.2 窗口基本元素........................ 752 24.2.1 Component 类 .................. 752 XVII 24.2.2 Container 类 .................... 753 24.2.3 Panel 类 ........................... 753 24.2.4 Window 类 ...................... 753 24.2.5 Frame 类 ......................... 753 24.2.6 Canvas 类 ........................ 753 24.3 使用框架窗口 ....................... 753 24.3.1 设置窗口的尺寸 ............. 754 24.3.2 隐藏和显示窗口 ............. 754 24.3.3 设置窗口的标题 ............. 754 24.3.4 关闭框架窗口 ................. 754 24.4 在applet 中创建框架窗口 .... 755 24.5 创建基于窗口的程序 ........... 761 24.6 在窗口中显示信息 ............... 763 24.7 使用图形 ............................... 763 24.7.1 绘制直线......................... 764 24.7.2 绘制矩形......................... 765 24.7.3 绘制椭圆和圆 ................. 765 24.7.4 绘制弧形......................... 766 24.7.5 绘制多边形 ..................... 767 24.7.6 改变图形的大小 ............. 767 24.8 使用颜色 ............................... 768 24.8.1 Color 类的方法 ............... 769 24.8.2 设置当前图形的颜色 ..... 770 24.8.3 一个演示颜色的applet ... 770 24.9 设置绘图模式 ....................... 771 24.10 使用字体 ............................. 773 24.10.1 确定可用字体 ............ 774 24.10.2 创建和选择字体 ........ 775 24.10.3 获取字体信息 ............ 777 24.11 使用FontMetrics 管理文本 输出 ...................................... 778 24.11.1 显示多行文本 ............ 779 24.11.2 居中显示文本 ............ 781 24.11.3 对齐多行文本 ............ 782 第25 章 使用AWT 控件、布局 管理器和菜单 ...................... 787 25.1 控件的基础知识 ................... 788 25.1.1 添加和移除控件 ............. 788 25.1.2 响应控件 ......................... 788 25.1.3 HeadlessException 异常 ... 788 25.2 使用标签 ............................... 789 25.3 使用命令按钮........................ 790 25.4 使用复选框............................ 793 25.5 使用复选框组........................ 795 25.6 使用下拉列表........................ 796 25.7 使用列表框............................ 798 25.8 管理滚动条............................ 801 25.9 使用TextField ....................... 804 25.10 使用TextArea ...................... 807 25.11 理解布局管理器 .................. 808 25.11.1 FlowLayout 布局 管理器 ......................... 809 25.11.2 BorderLayout 布局 管理器 ......................... 811 25.11.3 使用Insets ................... 812 25.11.4 GridLayout 布局 管理器 ......................... 814 25.11.5 CardLayout 布局 管理器 ......................... 815 25.11.6 GridBagLayout 布局 管理器 ......................... 818 25.12 菜单栏和菜单 ...................... 823 25.13 对话框 ................................. 829 25.14 FileDialog 类 ....................... 834 25.15 扩展AWT 控件以处理 事件 ..................................... 835 25.15.1 扩展按钮 ..................... 836 25.15.2 扩展复选框 ................. 837 25.15.3 扩展复选框组 ............. 838 25.15.4 扩展下拉列表 ............. 839 25.15.5 扩展列表框 ................. 840 25.15.6 扩展滚动条 ................. 841 25.16 关于重载paint()方法 .......... 842 XVIII 第26 章 图像 ..................................... 843 26.1 文件格式 ............................... 844 26.2 图像基础:创建、加载与 显示 ....................................... 844 26.2.1 创建Image 对象 ............. 844 26.2.2 加载图像......................... 845 26.2.3 显示图像......................... 845 26.3 ImageObserver 接口 .............. 846 26.4 双缓存 ................................... 848 26.5 MediaTracker 类 .................... 850 26.6 ImageProducer 接口 .............. 853 26.7 ImageConsumer 接口 ............ 855 26.8 ImageFilter 类 ........................ 857 26.8.1 CropImageFilter 类 ......... 858 26.8.2 RGBImageFilter 类 ......... 860 26.9 单元格动画 ........................... 870 26.10 其他图像类 ......................... 873 第27 章 并发实用工具 ...................... 875 27.1 并发API 包 ........................... 876 27.1.1 java.util.concurrent 包 ..... 876 27.1.2 java.util.concurrent.atomic 包 .................................... 877 27.1.3 java.util.concurrent.locks 包 .................................... 877 27.2 使用同步对象 ....................... 877 27.2.1 Semaphore 类 .................. 878 27.2.2 CountDownLatch 类 ....... 884 27.2.3 CyclicBarrier 类 .............. 885 27.2.4 Exchanger 类................... 888 27.2.5 Phaser 类 ......................... 890 27.3 使用执行器 ........................... 898 27.3.1 一个简单的执行器 示例 ............................ 898 27.3.2 使用Callable 和Future 接口 ................................ 900 27.4 TimeUnit 枚举 ....................... 903 27.5 并发集合 ............................... 904 27.6 锁 ........................................... 905 27.7 原子操作 ............................... 908 27.8 通过Fork/Join Framework 进行并行编程 ........................ 909 27.8.1 主要的Fork/Join 类 ........ 909 27.8.2 分而治之的策略 ............. 912 27.8.3 一个简单的Fork/Join 示例 ................................. 913 27.8.4 理解并行级别带来的 影响 ................................. 915 27.8.5 一个使用RecursiveTask 的例子 ............................. 918 27.8.6 异步执行任务 ................. 921 27.8.7 取消任务 ......................... 921 27.8.8 确定任务的完成状态 ..... 921 27.8.9 重新启动任务 ................. 922 27.8.10 深入研究 ....................... 922 27.8.11 关于Fork/Join Framework 的一些提示 ................... 923 27.9 并发实用工具与Java 传统 方式的比较............................ 924 第28 章 正则表达式和其他包 ........... 925 28.1 核心Java API 包 ................... 926 28.2 正则表达式处理 .................... 927 28.2.1 Pattern 类 ......................... 928 28.2.2 Matcher 类 ....................... 928 28.2.3 正则表达式的语法 ......... 929 28.2.4 演示模式匹配 ................. 929 28.2.5 模式匹配的两个选项 ..... 935 28.2.6 探究正则表达式 ............. 935 28.3 反射 ....................................... 936 28.4 远程方法调用........................ 939 28.5 文本格式化............................ 943 28.5.1 DateFormat 类 ................. 943 28.5.2 SimpleDateFormat 类 ...... 945 XIX 第Ⅲ部分 使用Java 开发软件 第29 章 Java Bean ............................. 951 29.1 Java Bean 是什么 .................. 952 29.2 Java Bean 的优势 .................. 952 29.3 反省 ....................................... 952 29.3.1 属性的设计模式 ............. 952 29.3.2 事件的设计模式 ............. 954 29.3.3 方法与设计模式 ............. 954 29.3.4 使用BeanInfo 接口 ........ 955 29.4 绑定属性与约束属性 ........... 955 29.5 持久性 ................................... 955 29.6 定制器 ................................... 956 29.7 Java Bean API ........................ 956 29.7.1 Introspector 类 ................ 958 29.7.2 PropertyDescriptor 类 ..... 958 29.7.3 EventSetDescriptor 类 .... 958 29.7.4 MethodDescriptor 类 ...... 958 29.8 一个Bean 示例 ..................... 958 第30 章 Swing 简介 .......................... 963 30.1 Swing 的起源 ........................ 964 30.2 Swing 以AWT 为基础 ......... 964 30.3 两个关键的Swing 特性 ....... 964 30.3.1 Swing 组件是轻量级的 ... 964 30.3.2 Swing 支持可插入外观 ... 965 30.4 MVC 连接 ............................. 965 30.5 组件与容器 ........................... 966 30.5.1 组件 ................................ 966 30.5.2 容器 ................................ 967 30.5.3 顶级容器窗格 ................. 967 30.6 Swing 包 ................................ 967 30.7 一个简单的Swing 应用程序 ............................... 968 30.8 事件处理 ............................... 972 30.9 创建Swing applet ................. 975 30.10 在Swing 中绘图 ................. 977 30.10.1 绘图的基础知识 ........ 977 30.10.2 计算可绘制区域 ........ 978 30.10.3 一个绘图示例 ............. 979 第31 章 探究Swing .......................... 983 31.1 JLabel 与ImageIcon .............. 984 31.2 JTextField ............................... 985 31.3 Swing 按钮 ............................ 987 31.3.1 JButton ............................. 988 31.3.2 JToggleButton .................. 990 31.3.3 复选框 ............................. 992 31.3.4 单选按钮 ......................... 994 31.4 JTabbedPane .......................... 996 31.5 JScrollPane ............................. 998 31.6 JList ...................................... 1000 31.7 JComboBox.......................... 1003 31.8 树 ......................................... 1006 31.9 JTable ................................... 1009 31.10 继续研究Swing ................ 1011 第32 章 servlet ............................... 1013 32.1 背景 ..................................... 1013 32.2 sevelet 的生命周期 ............. 1014 32.3 Servlet 开发选项 ................. 1015 32.4 使用Tomcat ......................... 1015 32.5 一个简单的servlet .............. 1017 32.5.1 创建和编译servlet 源代码 .......................... 1017 32.5.2 启动Tomcat ................. 1018 32.5.3 启动Web 浏览器并 请求servlet ................... 1018 32.6 servlet API ............................ 1018 32.7 javax.servlet 包 .................... 1018 32.7.1 Servlet 接口 .................. 1019 32.7.2 ServletConfig 接口 ....... 1020 32.7.3 ServletContext 接口 ..... 1020 32.7.4 ServletRequest 接口 ..... 1020 32.7.5 ServletResponse 接口 ... 1021 32.7.6 GenericServlet 类 ......... 1022 32.7.7 ServletInputStream 类 ... 1022 32.7.8 ServletOutputStream 类 ... 1022 XX 32.7.9 servlet 异常类 ............... 1022 32.8 读取servlet 参数 ................. 1022 32.9 javax.servlet.http 包 ............. 1024 32.9.1 HttpServletRequest 接口 .............................. 1025 32.9.2 HttpServletResponse 接口 .............................. 1025 32.9.3 HttpSession 接口 .......... 1026 32.9.4 HttpSessionBindingListener 接口 .............................. 1027 32.9.5 Cookie 类 ...................... 1027 32.9.6 HttpServlet 类 ............... 1028 32.9.7 HttpSessionEvent 类 ..... 1029 32.9.8 HttpSessionBindingEvent 类 .................................. 1030 32.10 处理HTTP 请求和响应 ... 1030 32.10.1 处理HTTP GET 请求 .......................... 1030 32.10.2 处理HTTP POST 请求 .......................... 1032 32.11 使用cookie ........................ 1033 32.12 会话跟踪 ........................... 1035 第Ⅳ部分 Java 应用 第33 章 applet 和servlet 在金融领域的 应用 ................................... 1039 33.1 计算贷款的还款额 ............. 1040 33.1.1 RegPay 中声明的变量 ... 1044 33.1.2 init()方法....................... 1044 33.1.3 makeGUI()方法 ............ 1044 33.1.4 actionPerformed()方法 .... 1047 33.1.5 compute()方法 .............. 1048 33.2 计算投资的未来收益 ......... 1048 33.3 计算为达到未来收益所需 要的初始投资额 ................. 1052 33.4 计算为拿到期望的养老金 所需要的初始投资额 ......... 1056 33.5 计算给定投资的最大收益 ... 1060 33.6 计算贷款余额 ..................... 1064 33.7 创建应用于金融领域的 servlet ................................... 1068 33.7.1 将RegPay applet 转换为 servlet............................ 1069 33.7.2 RegPayS servlet ............ 1069 33.8 一些尝试 ............................. 1072 第34 章 使用Java 创建下载管理器 ... 1073 34.1 理解Internet 下载 ............... 1074 34.2 下载管理器概述 .................. 1074 34.3 DownLoad 类....................... 1075 34.3.1 DownLoad 类的变量 ... 1079 34.3.2 DownLoad 类的 构造函数 ...................... 1079 34.3.3 download()方法 ............ 1079 34.3.4 run()方法 ...................... 1079 34.3.5 stateChanged()方法 ...... 1083 34.3.6 动作和访问器方法 ...... 1083 34.4 ProgressRenderer 类 ............ 1083 34.5 DownloadsTableModel 类 ... 1084 34.5.1 addDownload()方法 ..... 1086 34.5.2 clearDownload()方法 ... 1087 34.5.3 getColumnClass()方法 ... 1087 34.5.4 getValueAt()方法 .......... 1087 34.5.5 update()方法 ................. 1088 34.6 DownloadManager 类 .......... 1088 34.6.1 DownloadManager 类的 变量 .............................. 1094 34.6.2 DownloadManager 类的 构造函数 ...................... 1095 34.6.3 verifyUrl()方法 ............. 1095 34.6.4 tableSelectionChanged() 方法 .............................. 1096 34.6.5 updateButtons()方法 ..... 1096 34.6.6 处理动作事件 .............. 1097 34.7 编译和运行下载管理器 ...... 1098 34.8 进一步完善下载管理器 ...... 1098 附录 使用Java 的文档注释 ............. 1099

...展开详情
上传时间:2018-04 大小:137.28MB
热门图书