NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

书评:Java 核心编程卷 1——基础

  • 2013-11-04
  • 本文字数:1901 字

    阅读完需:约 6 分钟

现在已经步入了 21 世纪,我们很难想象曾经 Java 相关的图书是那样的稀少,但这就是 Java 刚出现时的情况。那时所有与 Java 相关的图书基本上都是由 Sun 公司的几个工程师们所发布的,比如说 Arthur Van Hoff et.al 所写的“Hooked on Java”以及 Patrick Naughton 所写的“The Java Handbook”。

当然了,这些图书填补了 Java 的空白,不过每本书都有 3、400 页,这些图书都假设读者了解程序,特别是面向对象程序设计。

1996 年 Cay Horstmann 与 Gary Cornell 出版了名为“Java 核心编程”的图书,这本书有 600 多页,它没有做任何假定,从头开始教授读者 Java,这本书的风格清晰且可读性强,不禁让我们回想起早期 Brian Kernighan 与 Patrick Henry Winston 的编程课程。

17 年转瞬即逝,Horstmann 与 Cornell 又出版了 Java 核心编程第 9 版。该版共分为两卷,卷 1(基础)有 974 页,卷 2(高级特性)甚至达到了 1128 页。你可以在书中找到有关 Java 7(最新的 JDK 版本)的一切内容,包括集合、泛型、并发以及从 JDK 的首个版本发布以来 Java 的所有特性。

新版的编写风格依然清晰且具有很强的可读性,并且提供了大量的示例,这些示例虽然基本但却很重要。显然,作者在创建这些示例时经过了大量的思考,示例非常详尽,为读者提供了很有价值的参考。书中充斥了大量的“C++ 注释”,旨在以 Java 的方式来指导 C++ 程序员。

(单击下图以放大查看)

卷1 首先介绍了Java 的历史以及语言设计者的最高诉求(健壮、可移植、多线程等等)。然后是一个简洁的上手指南,包括下载与安装Java 语言环境(包括JDK 与Eclipse IDE)的说明。这部分提供了一些可靠的代码示例,你可以通过一些可视化的Applets 来测试安装环境。

接下来介绍了最基本的数据类型以及语法、程序结构和控制流,详细解释了BigNumber、BigDecimal 与BigInteger。

介绍完基础内容后,本书又开始详细介绍面向对象编程(OOP)。拥有C 语言等过程式背景的程序员一般都会觉得向OO 转变是个比较困难的过程。Java 核心编程这本书在这方面做得非常棒。讨论首先从一些基本的UML、直观的示例以及Java 中的类与对象开始。接下来继续深入到Java 风格的OO 中,包括类文件与构造方法。本章最后给出了一些“类设计提示”,这是用于创建良好、可读且可重用代码的最佳实践。

OO 讨论之后的几章会开始介绍继承、接口与内部类,并给出了相应的 Java 实现。

接下来的 4 章有 300 页,是关于图形编程开发的,包括主要的 Swing 组件、字体、使用颜色、处理鼠标与键盘事件、布局管理器、Applets 以及部署策略,如浏览器、Java Web Start 与 JAR 文件。我比较失望的是书中并未提及 JavaFX,因为 JavaFX 现在已经成为 Java 核心库的一部分了,并且作为 Swing 的扩展使用。

再往下的一章介绍了异常处理,显然这里会介绍调试技巧、日志以及如何使用调试器。后面的一章介绍了泛型编程。即便是有经验的 Java 程序员在这个主题上也会遇到问题,不过介绍的过程却是非常清晰的。本书还介绍了 Java 7“Project Coin”中所引入的新的钻石表示法。然后开始介绍 Java Collections 与 Maps,包括一些算法,并且简要介绍了老式的 Collections 与 Maps,如 Hashtable、Vector 与 Enumeration。

本书最后通过 108 页的篇幅从头开始介绍多线程。该章以“什么是线程”开始,然后介绍“线程状态”,给出一个漂亮的状态图,介绍了通过“同步”进行的转换并讨论了竞态条件。接下来介绍了 Java 5 中引入的 java.util.concurrent 组件。然后介绍了 Executors 与线程池,“同步”组件,通过使用线程来确保 Swing UI 的响应性讨论了 SwingWorker 的概念。

我认为加入多线程一章是个很好的决定,而在之前的版本中这一章被放到了卷 2 中。并发对于所有重要的 Java 代码来说都是很必要的,并不应该被当作高级特性。然而,我很遗憾地看到关于 Streams 与 Readers 的章节被放到了卷 2 中,因为他们也是基础的主题,卷 2 在今年 3 月出版。

自从 1995 年首次发布以来 Java 得到了长足的发展,这不仅体现在表达性方面,周边的生态系统亦是如此。Java 核心编程内容很多但却十分详尽,读起来没有压力,对于程序员新手、来自其他语言的程序员、甚至是高级 Java 开发者(想要在手边放一本能够清晰展现 Java 核心的各个主题的图书)来说都是一本非常不错的图书。

关于本书作者

Cay S. Horstmann 是“Scala for the Impatient”(Addison-Wesley,2012) 的作者,也是“Core JavaServer Faces”第 3 版(Prentice Hall,2010)的合著者。他是圣何塞州立大学计算机科学系的教授,Java Champion,也经常在各种开发者会议上进行演讲。

查看英文原文: Book Review: Core Java Volume 1 - Fundamentals

2013-11-04 09:114798
用户头像

发布了 88 篇内容, 共 258.6 次阅读, 收获喜欢 8 次。

关注

评论

发布
暂无评论
发现更多内容

Android Input底层机制

江湖修行

android 大前端 移动端 系统源码

新闻网站封锁AI爬虫 AI与新闻媒体博弈继续

郑州埃文科技

AI 爬虫

一次性搞定多任务!Python自动化复用浏览器技巧大揭秘

测试人

软件测试

DxO ViewPoint 4 for Mac(照片修复校正工具)v4.15.0.294激活版

影影绰绰一往直前

分享一个能让你的研发效率提升超过20%的工具

华为云开发者联盟

开发 华为云 华为云开发者联盟 华为云CodeArts

【教程】无法验证app需要互联网连接以验证是否信任开发者

雪奈椰子

抖音详情API:视频内容获取与解析技巧

技术冰糖葫芦

API 接口

INSERT...SELECT语句对查询的表加锁吗

GreatSQL

greatsql

App原生开发:iOS和Android平台的比较(看这一篇就够了)

天津汇柏科技有限公司

软件开发 APP开发 小程序开发 软件开发定制

新学期提效神器汇总!男大女大们准备好了吗?

飞桨PaddlePaddle

百度 BAIDU 百度飞桨 AI应用 飞桨星河社区

浪潮信息边缘服务器支持英特尔第五代至强处理器

财见

【愚公系列】2024远控性能大解密!5款评价最高远控软件ToDesk、TeamViewer、向日葵、Parsec、AirDroid谁与争锋?

愚公搬代码

DxO PhotoLab 7 for Mac(专业照片编辑软件)v7.5.0.47激活版

影影绰绰一往直前

利用1688商品详情API:快速获取商品信息的技巧与策略

技术冰糖葫芦

API 接口

MySQL数据库中SQL语句分几类?

小魏写代码

ForkLift for Mac(文件管理程序)v4.1.0激活版

影影绰绰一往直前

工作两年涨薪40%,揭秘我的学习之路!

霍格沃兹测试开发学社

自动化测试的痛点与发展趋势

老张

DevOps 自动化测试

从Language Model到Chat Application:对话接口的设计与实现

阿里技术

application Language 设计与实现 对话接口

Text Workflow for mac(文本格式转换工具)v1.9.3直装激活版

影影绰绰一往直前

DxO FilmPack 7 for Mac(胶片效果渲染工具)v7.5.0.513中文激活版

影影绰绰一往直前

[自研开源] 用Docker部署 MyData v0.7.1

LIEN

开源 数据集成 业务融合 API对接 mydata

【FAQ】HarmonyOS SDK 闭源开放能力 —Map Kit

HMS Core

HarmonyOS

模型驱动测试引领测试开发新风向

霍格沃兹测试开发学社

DxO PhotoLab 6 for Mac(智能raw图片编辑器)v6.15.0.68激活版

影影绰绰一往直前

测试人生 | 工作两年涨薪40%,揭秘我的学习之路!

测吧(北京)科技有限公司

测试

软件测试工作两年涨薪40%,揭秘我的学习之路!

测试人

软件测试

App Cleaner & Uninstaller for mac(mac应用清理和卸载软件)v8.2.7中文激活版

影影绰绰一往直前

如何简化 Kubernetes 出入向流量管理

NGINX开源社区

Kubernetes Ingress Controller NGINX PLUS NGINX Service Mesh mTLS

下一代积木式智能组装编排,集成开发效率10倍提升

华为云开发者联盟

开发 华为云 华为云开发者联盟 DTSE Tech Talk

5月17-19日 上海线下 · CSP直通车训练营 · CST导师亲授【名额有限,先到先得】

ShineScrum捷行

ScrumMaster 敏捷教练认证 上海线下、 Scrum专业认证

书评:Java核心编程卷1——基础_Java_Victor Grazi_InfoQ精选文章