Java核心编程卷1:基础

现在已经步入了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。

本栏目更多精彩内容:http://www.bianceng.cn/Programming/Java/

介绍完基础内容后,本书又开始详细介绍面向对象编程(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核心的各个主题的图书)来说都是一本非常不错的图书。

时间: 2024-10-02 14:03:22

Java核心编程卷1:基础的相关文章

Java核心技术 卷Ⅰ 基础知识(原书第10版)

Java核心技术系列 Java核心技术 卷Ⅰ 基础知识 (原书第10版) Core Java Volume I-Fundamentals (10th Edition) [美] 凯S.霍斯特曼(Cay S. Horstmann) 著 周立新 陈 波 叶乃文 邝劲筠 杜永萍 译 图书在版编目(CIP)数据 Java核心技术 卷Ⅰ 基础知识(原书第10版) / (美)凯S. 霍斯特曼(Cay S. Horstmann)著:周立新等译. -北京:机械工业出版社,2016.8 (Java核心技术系列) 书

Java核心编程实践--视频

Java核心编程实践--视频 下载地址:http://v.51work6.com/courseInfoRedirect.do?action=courseInfo&courseId=240577    图形用户界面的开发是本教程的重点,图书管理系统是使用图形界面开发的.集合框架是非常重要的内容,通过本教程的学习使学员掌握两大接口Collection和Map,还有List等,以及它们的实现类ArrayList.Vector和HashMap等.使用Collections类实现对集合的排序.最大值.最小

Java核心编程:卷I——学习小记

编程 <Core Java2 Volume I: Fundamentals>(原书第5版)机械工业出版社 以前看过的关于Java的东西都很零碎,感觉有必要重新学习一下Java的一些基础知识,特记. 第1章 Java 简介 1.我们认为Java的种种优势在它应用于新型设备或新应用领域中才能体现,而不是用它来重写那些已存在的应用程序.///所谓各领风骚十来年,大致就是这个意思:同时,泛泛地比较语言之间的优劣是没有意义的 2.简单的说,面向对象的程序设计是把重点放在数据(等于对象)以及对象接口上的一

Java多线程编程实战之基础

在 Java 程序中使用多线程要比在 C 或 C++ 中容易得多,这是因为 Java 编程语言提供了语言级的支持.本文通过简单的编程示例来说明 Java 程序中的多线程是多么直观.读完本文以后,用户应该能够编写简单的多线程程序. 为什么会排队等待? 下面的这个简单的 Java 程序完成四项不相关的任务.这样的程序有单个控制线程,控制在这四个任务之间线性地移动.此外,因为所需的资源 - 打印机.磁盘.数据库和显示屏 -- 由于硬件和软件的限制都有内在的潜伏时间,所以每项任务都包含明显的等待时间.因

Java 并发编程学习笔记之核心理论基础_java

并发编程是Java程序员最重要的技能之一,也是最难掌握的一种技能.它要求编程者对计算机最底层的运作原理有深刻的理解,同时要求编程者逻辑清晰.思维缜密,这样才能写出高效.安全.可靠的多线程并发程序.本系列会从线程间协调的方式(wait.notify.notifyAll).Synchronized及Volatile的本质入手,详细解释JDK为我们提供的每种并发工具和底层实现机制.在此基础上,我们会进一步分析java.util.concurrent包的工具类,包括其使用方式.实现源码及其背后的原理.本

java线程编程(一):线程基础

在学习java中,我发现有关于对线程的讲解比较少,我打算为一些java初学者提一些关于线程方面的参考, 为深入学习java奠定基础.我本着共同进步的原则特写下了关于java线程编程的一系列文章 java线程编程(一):线程基础 ◆线程(thread)其实是控制线程(thread of control)的缩写. 每一个线程都是独立的,因此线程中的每个方法的局部变量都是和其他线程隔离开的,这些变量完全是私有的,因此对于 线程而言,是没有办法访问其他线程的局部变量的.如果两个线程同时访问同一个方法,则

JAVA学习(五):Java面向对象编程基础

Java面向对象编程基础 面向对象(Object oriented programming,OOP)技术是一种强有力的软件开发方法,它采用数据抽象与信息隐藏技术,来使软件开发简单化,以达到代码重用的目的. 1.OOP的3个特性(封装.继承和多态性) 封装是类的基础,指把类的相关实现细节隐藏起来,在类中将数据和实现操作的代码集中起来放在对象的内部,调用这些类时只需直接使用类预留的接口就可以了. 继承提供了子类自动拥有父类数据结构和方法的机制,它表示类之间的一种关系. 多态指使一个对象被看成另一个对

vo封装-Java web编程基础 在线考试系统源代码

问题描述 Java web编程基础 在线考试系统源代码 一.功能说明 1.学生 学生使用学号和密码登录系统,实现在线答题,提交试卷后可以直接查看测试成绩. 2.教师 教师使用教师号和密码登录系统,可以实现题目表question的维护工作(增删改查). 二.结构说明 采用JSP+JavaBean模式,利用VO实现对象的封装. 三.界面说明 界面设计合理.友好,可操作性强,充分考虑用户的使用需求. 四.数据库说明 三张表: 1.学生表student:记录学生的学号.姓名.密码.测试成绩 2.教师表t

精通hibernate -java数据库持久层开发核心编程 黄佩虹

问题描述 雪地里跪求:精通hibernate-java数据库持久层开发核心编程黄佩虹中附光的盘资源邮箱:819948087@qq.com