| 作者 |
| 赫伯特·希尔特(Herbert Schildt) |
| 丛书名 |
| 出版社 |
| 清华大学出版社 |
| ISBN |
| 9787302547853 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 《Java 11官方参考手册(第11版)》针对Java SE 11做了全面更新,介绍如何开发、编译、调试和运行Java程序。本书由畅销书作者Herbert Schildt撰写,涵盖Java语言的方方面面,包括Java的语法、关键字、基本编程原则。此外,本书还介绍Java API库的关键元素(如I/O、集合框架、流库和并发实用工具等),分析Swing、Java Bean和servlet,并通过大量真实案例演示Java语言在编程中的实际应用,深入讲解极其重要的模块系统,并在*后介绍Java的交互式编程工具——JShell。*重要的是,本书讲解清晰,简明扼要;Herbert的这种写作风格使其著作备受全球数百万读者的青睐。 主要内容 ● 数据类型、变量、数组和运算符 ● 控制语句 ● 类、对象和方法 ● 方法重载和重写 ● 继承 ● 局部变量类型推断 ● 包和接口 ● 异常处理 ● 多线程编程 ● 枚举、自动装箱和注解 ● I/O类 ● 泛型 ● lambda表达式 ● 模块 ● 字符串处理 ● 集合框架 ● 联网 ● 事件处理 . ● 并发API ● 流API ● 正则表达式 ● AWT和Swing ● Java Bean ● servlet |
| 目录 |
| 录 第Ⅰ部分 Java语言 第 1 章 Java的历史和演变 3 1.1 Java的家世 3 1.1.1 现代编程语言的诞生:C语言 3 1.1.2 C :下一个阶段 4 1.1.3 Java出现的时机已经成熟 5 1.2 Java的诞生 5 1.3 Java改变Internet的方式 6 1.3.1 Java applet 6 1.3.2 安全性 7 1.3.3 可移植性 7 1.4 Java的魔力:字节码 7 1.5 超越applet 8 1.6 更快的发布周期 8 1.7 servlet:服务器端的Java 9 1.8 Java的关键特性 9 1.8.1 简单性 9 1.8.2 面向对象 10 1.8.3 健壮性 10 1.8.4 多线程 10 1.8.5 体系结构中立 10 1.8.6 解释执行和高性能 10 1.8.7 分布式 11 1.8.8 动态性 11 1.9 Java的演变历程 11 1.10 文化革新 14 第2 章 Java综述 15 2.1 面向对象编程 15 2.1.1 两种范式 15 2.1.2 抽象 15 2.1.3 OOP三原则 16 2.2 第一个简单程序 19 2.2.1 输入程序 19 2.2.2 编译程序 20 2.2.3 深入分析第一个示例程序 20 2.3 第二个简短程序 22 2.4 两种控制语句 23 2.4.1 if语句 23 2.4.2 for循环 24 2.5 使用代码块 25 2.6 词汇问题 27 2.6.1 空白符 27 2.6.2 标识符 27 2.6.3 字面值 27 2.6.4 注释 27 2.6.5 分隔符 27 2.6.6 Java关键字 28 2.7 Java类库 29 第3 章 数据类型、变量和数组 30 3.1 Java是强类型化的语言 30 3.2 基本类型 30 3.3 整型 31 3.3.1 byte 31 3.3.2 short 31 3.3.3 int 31 3.3.4 long 32 3.4 浮点型 32 3.4.1 float 32 3.4.2 double 33 3.5 字符型 33 3.6 布尔型 34 3.7 深入分析字面值 35 3.7.1 整型字面值 35 3.7.2 浮点型字面值 36 3.7.3 布尔型字面值 36 3.7.4 字符型字面值 36 3.7.5 字符串字面值 37 3.8 变量 37 3.8.1 变量的声明 37 3.8.2 动态初始化 38 3.8.3 变量的作用域和生存期 38 3.9 类型转换和强制类型转换 40 3.9.1 Java的自动类型转换 40 3.9.2 强制转换不兼容的类型 41 3.10 表达式中的自动类型提升 42 3.11 数组 43 3.11.1 一维数组 43 3.11.2 多维数组 45 3.11.3 另一种数组声明语法 48 3.12 局部变量的类型推断 49 3.13 关于字符串的一些说明 51 第4章 运算符 52 4.1 算术运算符 52 4.1.1 基本算术运算符 52 4.1.2 求模运算符 53 4.1.3 算术与赋值复合运算符 54 4.1.4 自增与自减运算符 55 4.2 位运算符 56 4.2.1 位逻辑运算符 57 4.2.2 左移 59 4.2.3 右移 60 4.2.4 无符号右移 61 4.2.5 位运算符与赋值的组合 62 4.3 关系运算符 63 4.4 布尔逻辑运算符 64 4.5 赋值运算符 65 4.6 ”运算符 66 4.7 运算符的优先级 66 4.8 使用圆括号 67 第 5 章 控制语句 68 5.1 Java的选择语句 68 5.1.1 if语句 68 5.1.2 switch语句 70 5.2 迭代语句 74 5.2.1 while语句 75 5.2.2 do-while语句 76 5.2.3 for语句 78 5.2.4 for循环的for-each版本 81 5.2.5 for循环中的局部变量类型推断 85 5.2.6 嵌套的循环 86 5.3 跳转语句 86 5.3.1 使用break语句 87 5.3.2 使用continue语句 90 5.3.3 return语句 91 第 6 章 类 92 6.1 类的基础知识 92 6.1.1 类的一般形式 92 6.1.2 一个简单的类 93 6.2 声明对象 95 6.3 为对象引用变量赋值 96 6.4 方法 97 6.4.1 为Box类添加方法 97 6.4.2 返回值 99 6.4.3 添加带参数的方法 100 6.5 构造函数 102 6.6 this关键字 104 6.7 垃圾回收 105 6.8 堆栈类 105 第 7 章 方法和类的深入分析 108 7.1 重载方法 108 7.2 将对象用作参数 112 7.3 实参传递的深入分析 114 7.4 返回对象 116 7.5 递归 116 7.6 访问控制 118 7.7 理解static 121 7.8 final介绍 123 7.9 重新审视数组 123 7.10 嵌套类和内部类 125 7.11 String类 127 7.12 使用命令行参数 129 7.13 varargs:可变长度实参 129 7.13.1 重载varargs方法 132 7.13.2 varargs方法与模糊性 133 第 8 章 继承 136 8.1 继承的基础知识 136 8.1.1 成员访问与继承 137 8.1.2 一个更实际的例子 138 8.1.3 超类变量可以引用子类对象 140 8.2 使用super关键字 141 8.2.1 使用super调用超类的构造函数 141 8.2.2 super的另一种用法 144 8.3 创建多级继承层次 145 8.4 构造函数的执行时机 148 8.5 方法重写 149 8.6 动态方法调度 151 8.6.1 重写方法的目的 152 8.6.2 应用方法重写 152 8.7 使用抽象类 154 8.8 在继承中使用final关键字 156 8.8.1 使用final关键字阻止重写 156 8.8.2 使用final关键字阻止继承 156 8.9 局部变量类型推断和继承 157 8.10 Object类 158 第9章 包和接口 160 9.1 包 160 9.1.1 定义包 160 9.1.2 包查找与CLASSPATH 161 9.1.3 一个简短的包示例 161 9.2 包和成员访问 162 9.3 导入包 166 9.4 接口 167 9.4.1 定义接口 168 9.4.2 实现接口 168 9.4.3 嵌套接口 170 9.4.4 应用接口 171 9.4.5 接口中的变量 174 9.4.6 接口可以扩展 176 9.5 默认接口方法 176 9.5.1 默认方法基础知识 177 9.5.2 一个更实用的例子 178 9.5.3 多级继承的问题 179 9.6 在接口中使用静态方法 179 9.7 私有接口方法 180 9.8 关于包和接口的最后说明 181 第 10 章 异常处理 182 10.1 异常处理的基础知识 182 10.2 异常类型 183 10.3 未捕获的异常 183 10.4 使用try和catch 184 10.5 多条catch子句 186 10.6 嵌套的try语句 187 10.7 throw 189 10.8 throws 190 10.9 finally 191 10.10 Java的内置异常 192 10.11 创建自己的异常子类 193 10.12 链式异常 195 10.13 其他三个异常特性 196 10.14 使用异常 197 第11章 多线程编程 198 11.1 Java线程模型 198 11.1.1 线程优先级 199 11.1.2 同步 200 11.1.3 消息传递 200 11.1.4 Thread类和Runnable接口 200 11.2 主线程 201 11.3 创建线程 202 11.3.1 实现Runnable接口 202 11.3.2 扩展Thread类 204 11.3.3 选择一种创建方式 205 11.4 创建多个线程 205 11.5 使用isAlive()和join()方法 206 11.6 线程优先级 209 11.7 同步 209 11.7.1 使用同步方法 209 11.7.2 synchronized语句 211 11.8 线程间通信 213 11.9 挂起、恢复与停止线程 218 11.10 获取线程的状态 221 11.11 使用工厂方法创建和启动线程 222 11.12 使用多线程 222 第 12 章 枚举、自动装箱与注解 223 12.1 枚举 223 12.2 类型封装器 231 12.3 自动装箱 233 12.4 注解 237 12.5 类型注解 248 12.6 重复注解 252 12.7 一些限制 253 第 13 章 I/O、带资源的try语句以及其他主题 254 13.1 I/O的基础知识 254 13.2 读取控制台输入 257 13.3 向控制台写输出 259 13.4 PrintWriter类 260 13.5 读/写文件 260 13.6 自动关闭文件 266 13.7 transient和volatile修饰符 268 13.8 使用instanceof运算符 269 13.9 strictfp 271 13.10 本地方法 271 13.11 使用assert 271 13.12 静态导入 274 13.13 通过this()调用重载的构造函数 276 13.14 紧凑API配置文件 277 第14章 泛型 278 14.1 什么是泛型 278 14.2 一个简单的泛型示例 279 14.3 带两个类型参数的泛型类 284 14.4 泛型类的一般形式 285 14.5 有界类型 285 14.6 使用通配符参数 288 14.7 创建泛型方法 294 14.8 泛型接口 296 14.9 原始类型与遗留代码 298 14.10 泛型类层次 300 14.11 泛型的类型推断 307 14.12 局部变量类型推断和泛型 308 14.13 擦除 308 14.14 模糊性错误 310 14.15 使用泛型的一些限制 311 第15 章 lambda表达式 313 15.1 lambda表达式简介 313 15.2 块lambda表达式 318 15.3 泛型函数式接口 319 15.4 作为参数传递lambda表达式 321 15.5 lambda表达式与异常 323 15.6 lambda表达式和变量捕获 324 15.7 方法引用 325 15.8 构造函数引用 332 15.9 预定义的函数式接口 336 第 16 章 模块 337 16.1 模块基础知识 337 16.2 java.base和平台模块 342 16.3 旧代码和未命名的模块 343 16.4 导出到特定的模块 343 16.5 使用requires transitive 344 16.6 使用服务 348 16.7 模块图 354 16.8 三个特殊的模块特性 355 16.9 jlink工具和模块JAR文件介绍 356 16.10 层与自动模块简述 357 16.11 小结 357 第Ⅱ部分 Java库 第17章 字符串处理 361 17.1 String类的构造函数 361 17.2 字符串的长度 363 17.3 特殊的字符串操作 363 17.4 提取字符 366 17.5 比较字符串 367 17.6 查找字符串 370 17.7 修改字符串 372 17.8 使用valueOf()转换数据 374 17.9 改变字符串中字符的大小写 375 17.10 连接字符串 375 17.11 其他String方法 376 17.12 StringBuffer类 377 17.13 StringBuilder类 382 第18章 探究java.lang 383 18.1 基本类型封装器 384 18.1.1 Number 384 18.2 Void类 399 18.3 Process类 399 18.4 Runtime类 400 18.5 Runtime.Version 403 18.6 ProcessBuilder类 404 18.7 System类 406 18.8 System.Logger和System.LoggerFinder 409 18.9 Object类 409 18.10 使用clone()方法和Cloneable接口 410 18.11 Class类 411 18.12 ClassLoader类 414 18.13 Math类 414 18.14 StrictMath类 418 18.15 Compiler类 418 18.16 Thread类、ThreadGroup类和Runnable接口 418 18.17 ThreadLocal和InheritableThreadLocal类 424 18.18 Package类 424 18.19 Module类 426 18.20 ModuleLayer类 426 18.21 RuntimePermission类 426 18.22 Throwable类 426 18.23 SecurityManager类 426 18.24 StackTraceElement类 427 18.25 StackWalker类和StackWalker.StackFrame接口 427 18.26 Enum类 427 18.27 ClassValue类 428 18.28 CharSequence接口 428 18.29 Comparable接口 429 18.30 Appendable接口 429 18.31 Iterable接口 429 18.32 Readable接口 430 18.33 AutoCloseable接口 430 18.34 Thread.UncaughtExceptionHandler接口 430 18.35 java.lang子包 430 第19章 java.util第1部分:集合框架 432 19.1 集合概述 433 19.2 集合接口 434 19.3 集合类 441 19.4 通过迭代器访问集合 451 19.5 Spliterator 454 19.6 在集合中存储用户定义的类 456 19.7 RandomAccess接口 457 19.8 使用映射 458 19.9 比较器 467 19.10 集合算法 474 19.11 Arrays类 479 19.12 遗留的类和接口 483 19.13 集合小结 497 第20章 java.util第2部分:更多实用工具类 498 20.1 StringTokenizer类 498 20.2 BitSet类 499 20.3 Optional、OptionalDouble、OptionalInt和OptionalLong 502 20.4 Date类 504 20.5 Calendar类 505 20.6 GregorianCalendar类 508 20.7 TimeZone类 509 20.8 SimpleTimeZone类 510 20.9 Locale类 511 20.10 Random类 512 20.11 Timer和TimerTask类 514 20.12 Currency类 516 20.13 Formatter类 516 20.14 Scanner类 529 20.15 ResourceBundle、ListResourceBundle和PropertyResourceBundle类 538 20.16 其他实用工具类和接口 541 20.17 java.util子包 542 第21章 输入/输出:探究java.io 546 21.1 I/O类和接口 546 21.2 File类 547 21.3 AutoCloseable、Closeable和 Flushable接口 552 21.4 I/O异常 552 21.5 关闭流的两种方式 553 21.6 流类 554 21.7 字节流 554 21.8 字符流 571 21.9 Console类 580 21.10 串行化 581 21.11 流的优点 586 第22章 探究NIO 587 22.1 NIO类 587 22.2 NIO的基础知识 587 22.3 NIO.2对NIO的增强 590 FileStore类 595 22.4 使用NIO系统 595 第23章 联网 613 23.1 联网的基础知识 613 23.2 java.net联网类和接口 614 23.3 InetAddress类 615 23.4 Inet4Address类和Inet6Address类 616 23.5 TCP/IP客户端套接字 616 23.6 URL类 619 23.7 URLConnection类 620 23.8 HttpURLConnection类 622 23.9 URI类 624 23.10 cookie 624 23.11 TCP/IP服务器套接字 624 23.12 数据报 624 23.13 java.net.http包 627 第24章 事件处理 632 24.1 两种事件处理机制 632 24.2 委托事件模型 632 24.3 事件类 634 24.4 KeyEvent类 639 24.5 事件源 643 24.6 事件监听器接口 643 24.7 使用委托事件模型 646 24.8 适配器类 652 24.9 内部类 654 第25章 AWT介绍:使用窗口、图形和文本 658 25.1 AWT类 658 25.2 窗口基本元素 660 25.3 使用框架窗口 661 25.4 使用图形 665 25.5 使用颜色 669 25.6 设置绘图模式 671 25.7 使用字体 673 25.8 使用FontMetrics管理文本输出 678 第26章 使用AWT控件、布局管理器和菜单 681 26.1 AWT控件的基础知识 681 26.1.1 添加和移除控件 682 26.1.2 响应控件 682 26.1.3 HeadlessException异常 682 26.2 使用标签 682 26.3 使用命令按钮 684 26.4 使用复选框 687 26.5 使用复选框组 689 26.6 使用下拉列表 691 26.7 使用列表框 693 26.8 管理滚动条 696 26.9 使用TextField 699 26.10 使用TextArea 701 26.11 理解布局管理器 703 26.12 菜单栏和菜单 715 26.13 对话框 719 26.14 关于重写paint()方法 723 第27章 图像 724 27.1 文件格式 724 27.2 图像基础知识:创建、加载与显示 724 27.3 双缓冲 726 27.4 ImageProducer接口 729 27.5 ImageConsumer接口 731 27.6 ImageFilter类 733 27.7 其他图像类 745 第28章 并发实用工具 746 28.1 并发API包 747 28.2 使用同步对象 748 28.3 使用执行器 764 28.4 TimeUnit枚举 769 28.5 并发集合 770 28.6 锁 771 28.7 原子操作 773 28.8 通过Fork/Join框架进行并行编程 774 28.9 并发实用工具与Java传统方式的比较 787 第29章 流API 788 29.1 流的基础知识 788 29.2 缩减操作 793 29.3 使用并行流 795 29.4 映射 797 29.5 收集 800 29.6 迭代器和流 803 29.7 流API中更多值得探究的地方 807 第30章 正则表达式和其他包 808 30.1 正则表达式处理 808 30.2 反射 815 30.3 远程方法调用 818 30.4 使用java.text格式化日期和时间 821 30.5 java.time的时间和日期API 824 第Ⅲ部分 使用Swing进行GUI编程 第 31 章 Swing简介 833 31.1 Swing的起源 833 31.2 Swing的构建以AWT为基础 834 31.3 两个关键的Swing特性 834 31.4 MVC连接 834 31.5 组件与容器 835 31.6 Swing包 836 31.7 一个简单的Swing应用程序 837 31.8 事件处理 840 31.9 在Swing中绘图 843 第32章 探索Swing 847 32.1 JLabel与ImageIcon 847 32.2 JTextField 849 32.3 Swing按钮 850 32.4 JTabbedPane 858 32.5 JScrollPane 860 32.6 JList 862 32.7 JComboBox 864 32.8 树 866 32.9 JTable 869 第33章 Swing菜单简介 872 33.1 菜单的基础知识 872 33.2 JMenuBar、JMenu和JMenuItem 33.3 创建主菜单 875 33.4 向菜单项添加助记符和加速键 879 33.5 向菜单项添加图片和工具提示 881 33.6 使用JRadioButtonMenuItem和 JCheckBoxMenuItem 881 33.7 创建弹出菜单 883 33.8 创建工具栏 886 33.9 使用动作 888 33.10 完整演示MenuDemo程序 892 33.11 继续探究Swing 898 第Ⅳ部分 应用Java 第 34 章 Java Bean 901 34.1 Java Bean是什么 901 34.2 Java Bean的优势 901 34.3 内省 902 34.5 持久性 904 34.6 定制器 904 34.7 Java Bean API 905 34.8 一个Bean示例 906 第35章 servlet 910 35.1 背景 910 35.2 servlet的生命周期 910 35.3 servlet开发选项 911 35.4 使用Tomcat 911 35.5 一个简单的servlet 912 35.6 Servlet API 914 35.7 javax.servlet包 914 35.8 读取servlet参数 917 35.9 javax.servlet.http包 918 35.9.1 HttpServletRequest接口 919 35.9.2 HttpServletResponse接口 920 35.9.3 HttpSession接口 920 35.9.4 Cookie类 921 35.9.5 HttpServlet类 922 35.10 处理HTTP请求和响应 923 35.11 使用cookie 925 35.12 会话跟踪 927 第Ⅴ部分 附录 附录A 使用Java的文档注释 931 附录B JShell简介 938 附录C 在一个步骤中编译和运行简单的单文件程序 946 |