具体描述
作者简介
Cay S.Horstmann是圣何塞州大学计算机科学系教授。他曾经是Preview Systems公司的副总裁和首席技术官,曾任许多大型公司、大学和组织的C++、Java与因特网编程顾问。
Gary Cornell曾经撰写或与人合著过20多本计算机畅销书。他是Brown大学的博士,在IBM的Watson实验室做过访问科学家,曾任康沓狄格大学的教授。
目录信息
前言
第1章 Java SE 8的流库 1
1.1 从迭代到流的操作 1
1.2 流的创建 3
1.3 f?ilter、map和f?latMap方法 6
1.4 抽取子流和连接流 8
1.5 其他的流转换 8
1.6 简单约简 9
1.7 Optional类型 11
1.7.1 如何使用Optional值 11
1.7.2 不适合使用Optional值的方式 12
1.7.3 创建Optional值 13
1.7.4 用f?latMap来构建Optional值的函数 13
1.8 收集结果 15
1.9 收集到映射表中 19
1.10 群组和分区 23
1.11 下游收集器 24
1.12 约简操作 28
1.13 基本类型流 29
1.14 并行流 34
第2章 输入与输出 39
2.1 输入/输出流 39
2.1.1 读写字节 39
2.1.2 完整的流家族 42
2.1.3 组合输入/输出流过滤器 45
2.2 文本输入与输出 48
2.2.1 如何写出文本输出 49
2.2.2 如何读入文本输入 51
2.2.3 以文本格式存储对象 52
2.2.4 字符编码方式 55
2.3 读写二进制数据 57
2.3.1 DataInput和DataOutput接口 57
2.3.2 随机访问文件 59
2.3.3 ZIP文档 63
2.4 对象输入/输出流与序列化 66
2.4.1 保存和加载序列化对象 66
2.4.2 理解对象序列化的文件格式 70
2.4.3 修改默认的序列化机制 75
2.4.4 序列化单例和类型安全的枚举 77
2.4.5 版本管理 78
2.4.6 为克隆使用序列化 80
2.5 操作文件 83
2.5.1 Path 83
2.5.2 读写文件 85
2.5.3 创建文件和目录 87
2.5.4 复制、移动和删除文件 88
2.5.5 获取文件信息 89
2.5.6 访问目录中的项 91
2.5.7 使用目录流 92
2.5.8 ZIP文件系统 95
2.6 内存映射文件 96
2.6.1 内存映射文件的性能 96
2.6.2 缓冲区数据结构 103
2.6.3 文件加锁机制 105
2.7 正则表达式 106
第3章 XML 117
3.1 XML概述 117
3.1.1 XML文档的结构 119
3.2 解析XML文档 122
3.3 验证XML文档 132
3.3.1 文档类型定义 133
3.3.2 XML Schema 139
3.3.3 实用示例 142
3.4 使用XPath来定位信息 154
3.5 使用命名空间 159
3.6 流机制解析器 162
3.6.1 使用SAX解析器 162
3.6.2 使用StAX解析器 166
3.7 生成XML文档 170
3.7.1 不带命名空间的文档 170
3.7.2 带命名空间的文档 170
3.7.3 写出文档 171
3.7.4 示例:生成SVG文件 172
3.7.5 使用StAX写出XML文档 174
3.8 XSL转换 181
第4章 网络 191
4.1 连接到服务器 191
4.1.1 使用telnet 191
4.1.2 用Java连接到服务器 193
4.1.3 套接字超时 195
4.1.4 因特网地址 196
4.2 实现服务器 198
4.2.1 服务器套接字 198
4.2.2 为多个客户端服务 201
4.2.3 半关闭 204
4.3 可中断套接字 205
4.4 获取Web数 211
4.4.1 URL和URI 211
4.4.2 使用URLConnection获取信息 213
4.4.3 提交表单数据 220
4.5 发送E-mail 228
第5章 数据库编程 232
5.1 JDBC的设计 232
5.1.1 JDBC驱动程序类型 233
5.1.2 JDBC的典型用法 234
5.2 结构化查询语言 234
5.3 JDBC配置 239
5.3.1 数据库URL 240
5.3.2 驱动程序JAR文件 240
5.3.3 启动数据库 240
5.3.4 注册驱动器类 241
5.3.5 连接到数据库 242
5.4 使用JDBC语句 244
5.4.1 执行SQL语句 244
5.4.2 管理连接、语句和结果集 247
5.4.3 分析SQL异常 248
5.4.4 组装数据库 250
5.5 执行查询操作 254
5.5.1 预备语句 254
5.5.2 读写LOB 259
5.5.3 SQL转义 261
5.5.4 多结果集 262
5.5.5 获取自动生成的键 263
5.6 可滚动和可更新的结果集 263
5.6.1 可滚动的结果集 264
5.6.2 可更新的结果集 266
5.7 行集 269
5.7.1 构建行集 270
5.7.2 被缓存的行集 270
5.8 元数据 273
5.9 事务 282
5.9.1 用JDBC对事务编程 282
5.9.2 保存点 283
5.9.3 批量更新 283
5.10 高级SQL类型 285
5.11 Web与企业应用中的连接管理 286
第6章 日期和时间API 288
6.1 时间线 288
6.2 本地时间 291
6.3 日期调整器 294
6.4 本地时间 295
6.5 时区时间 296
6.6 格式化和解析 299
6.7 与遗留代码的互操作 302
第7章 国际化 304
7.1 Locale对象 304
7.2 数字格式 309
7.3 货币 314
7.4 日期和时间 315
7.5 排序和范化 321
7.6 消息格式化 327
7.6.1 格式化数字和日期 327
7.6.2 选择格式 329
7.7 文本文件和字符集 331
7.7.1 文本文件 331
7.7.2 行结束符 331
7.7.3 控制台 331
7.7.4 日志文件 332
7.7.5 UTF-8字节顺序标志 332
7.7.6 源文件的字符编码 333
7.8 资源包 333
7.8.1 定位资源包 334
7.8.2 属性文件 335
7.8.3 包类 335
7.9 一个完整的例子 337
第8章 脚本、编译与注解处理 352
8.1 Java平台的脚本 352
8.1.1 获取脚本引擎 352
8.1.2 脚本赋值与绑定 353
8.1.3 重定向输入和输出 355
8.1.4 调用脚本的函数和方法 356
8.1.5 编译脚本 357
· · · · · · (收起)
读后感
武林至尊,宝刀屠龙,号令天下,莫敢不从,倚天不出,谁与争锋? 如果说“java核心技术卷1”是那屠龙刀,那么这本“java核心技术卷2”就是这倚天剑;绝对是java兵器谱上的必选书籍。 如此高深的技术书我还能保持轻松愉悦的阅读心情,真的是少有,将复杂而庞大的知识体系却如此...
P46页 void write(byte[] b, int off, int len) 书上的翻译是,写出所有字节或者某个范围的字节到数组b中。 其实实际应该是,写入所有字节或者某个范围的字节到输出流中。 都已经翻译第11版了,能走点心吗? 建议搞一个翻译勘误,像原版那样,让大家多提出一些翻译错误。这样会...
这本书是Java语言中的经典,从刚开始的第一版到现今的第九版,这本书见证了Java语言发展的过程。五年前读过第一卷,如今读的是第九版的第二卷。 工作这几年发现Java知识体系很庞大,普通情况下没有多少项目可以把第二卷的这些高级特性都应用进去。但是在项目开发过程中会遇到许...
整体上说,这并不是大部头,并没有必要从头一章章的啃到尾,如果慢慢啃的话,就有点得不偿失了,获得的知识弥补不了所消耗的时间。 虽然书很厚,但是可看的其实并不多,后面的索引和书中的API列举也占了不少篇幅,当我读到80%不到的时候,发现就已经完了。 如该书的副标题所示...
这本书是Java语言中的经典,从刚开始的第一版到现今的第九版,这本书见证了Java语言发展的过程。五年前读过第一卷,如今读的是第九版的第二卷。 工作这几年发现Java知识体系很庞大,普通情况下没有多少项目可以把第二卷的这些高级特性都应用进去。但是在项目开发过程中会遇到许...
用户评价
说实话,我对这种“卷二”级别的技术书籍通常抱持着一种敬而远之的态度,总觉得内容会过于理论化,脱离实际应用场景。然而,这本书彻底颠覆了我的看法。它在保持技术深度的同时,巧妙地融入了大量现代软件开发中的实际痛点。我印象最深的是它对模块化和依赖注入的讨论,不仅仅停留在框架的使用层面,而是深入到设计哲学层面,探讨为什么需要这样的机制,以及在不同规模的项目中如何权衡取舍。书中关于I/O操作的性能优化策略,我立刻在手头的一个遗留项目中进行了实践,效果立竿见影,解决了困扰团队许久的延迟问题。这种“即学即用”的体验感是极其宝贵的。此外,作者对于代码风格和设计模式的运用,堪称教科书级别的典范,每一个类、每一个方法的命名都经过深思熟虑,充满了可读性和可维护性。它不仅仅是在教你如何写出能运行的代码,更是在培养你构建健壮、可扩展的企业级系统的思维框架。读完相关章节,我甚至开始反思自己过去几年写的一些代码,感觉视野一下子被拓宽了不止一个维度。
初捧此书,我的心头涌起一股莫名的期待与忐忑。作为一名深耕Java多年的“老兵”,我深知技术书籍的更新速度堪比翻书,而面对“核心技术”这四个字,总会下意识地去衡量其分量。这本书的封面设计得相当朴素,没有过多花哨的装饰,反而透着一股沉稳的力量感,这很对我的胃口。我尤其欣赏它对基础概念的深入剖析,比如它对并发编程中那些微妙的内存模型解释,简直是醍醐灌顶。以往读其他书籍时,总觉得有些概念是“知其然不知其所以然”,但这里的讲解却能层层剥开,让你看到最底层的运作机制。它不像某些教材那样堆砌代码示例,而是精选那些能够体现设计思想的关键点进行阐述。阅读的过程中,我仿佛有了一位经验丰富的导师在旁边耐心指导,每当遇到困惑之处,翻阅下一页往往就能找到清晰的解答。特别是关于垃圾回收机制那一章节,作者的论述角度非常新颖,结合了JVM的最新发展趋势,让我对程序性能调优有了更深一层的认识。这本书的结构安排也十分合理,知识的递进关系处理得极其自然,让人读起来毫不费力,完全不像是在啃一本厚重的技术著作,更像是在进行一场高水平的学术漫谈。
这本书的文字风格对我来说是一种享受,它避开了技术文档常见的冷漠与晦涩,而是用一种近乎散文的流畅感来组织复杂的概念。举个例子,讲解泛型擦除时,作者没有直接扔出复杂的字节码层面的解释,而是用了一个非常形象的比喻,瞬间就将那个抽象的过程具象化了。这种叙事能力在技术书籍中是极其罕见的。我发现自己阅读的速度比以往任何技术书籍都要快,但理解的深度却丝毫没有降低,这绝对是文字魅力和逻辑严谨性完美结合的产物。更值得称道的是,它对“历史包袱”的处理。面对Java语言历经多年演进带来的兼容性问题,作者没有回避,而是坦诚地梳理了不同版本间的演变脉络,让我们理解了某些看似不合理的限制背后的历史原因。这种尊重历史、着眼未来的态度,让整本书的论述显得更加成熟和全面。对于那些希望从“码农”进阶到“架构师”的朋友来说,这本书提供的不仅仅是技术知识,更是一种看待和驾驭技术演进的成熟心境。
这本书的装帧和排版也为阅读体验加分不少。在长时间的深度阅读中,清晰的字体和合理的行间距至关重要。这本书在这一点上做得非常出色,大量的代码示例格式统一,关键字高亮得当,即便是面对大段的代码块,眼睛也不会轻易疲劳。另一个细节是,书中对专业术语的引入和定义非常严谨,通常第一次出现时就会给出清晰的解释,并且在后续引用时保持一致性,这极大地减少了因术语理解偏差而产生的阅读障碍。对于需要频繁查阅和回顾的读者来说,书中的索引设计得非常实用,能够快速定位到特定的技术点。总而言之,这是一本少有的,能够跨越入门和精通的鸿沟,用深入浅出的方式将现代Java编程中那些“硬骨头”啃下来的著作。它并非速成手册,而是需要静下心来、反复品味的工具书和思想导师的结合体,强烈推荐给任何自诩对Java有深入追求的开发者。
从版本更新的角度来看,这本书的参考价值是无可替代的。它清晰地勾勒出了Java生态系统中那些被广泛采用、但又往往被初学者忽略的“深度角落”。比如,书中对注解处理器(Annotation Processing)的深度挖掘,让我意识到这不仅仅是构建框架的工具,更是实现高度自动化构建流程的关键一环。我过去一直依赖外部工具来生成重复代码,而这本书指出了如何利用语言自身的机制来优雅地解决这类问题。再者,它对Java 8之后引入的流(Stream)API在处理复杂聚合操作时的底层优化逻辑进行了详细的性能对比分析,避免了我在实际工作中掉入“看似简洁实则低效”的陷阱。每次合上书本,我都会发现自己对Java平台有了更强的掌控感,不再仅仅是某个框架的使用者,而是能够深入到运行时环境去理解和优化程序的“掌控者”。这种自信感的提升,才是技术书籍能带给读者的最宝贵的财富。
这系列对我来说是最好的Java入门书,接口和例子相结合,基本上包含了解决工作中常见问题的手段。但是缺点也很明显,就是例子中胶水代码太多了,如果能做删减,就更好了。而且Swing和AWT部分觉得完全可以删除,换成JavaFX,那么用Java做Desktop Application,很少有人选择这俩了吧。
总体来说没有Java核心技术卷I出名,但是Java Core I把IO流部分放到这本书了,其实不是很推荐阅读这本书,里面提及的很多东西现在已经不再使用了。还是推荐只阅读Java Core 第一卷即可。
总体来说没有Java核心技术卷I出名,但是Java Core I把IO流部分放到这本书了,其实不是很推荐阅读这本书,里面提及的很多东西现在已经不再使用了。还是推荐只阅读Java Core 第一卷即可。
C.S.Horstmann是SJSU的教授 传说中的硅谷腹地就业神校 = = 所以你看他写的书 并不是特别权威深入 但就是特别畅销 特别接地气 跟着java的版本一起更新 每次更新版都大卖 这比书里的内容本身更值得我学习(. . )a
其实没用的地方挺多