这本最适合夯实基础的经典 Java 书籍,可能80% 的 Java 程序员没有认真看过!

公众号【程序员书单】出品,转载请注明出处
作者:黄小斜
今天要给大家带来的一本书,是大名鼎鼎的head first系列丛书的一本《head first Java》相信很多学习Java的朋友对它都不会陌生。
深入浅出系列书籍是由O’Reilly出版社发行的一系列教育书籍,它强调以特殊的方式排版,由大量的图片和有趣的内容组合构成,而达到非疲劳的沉浸式学习效果。

我目前就看过《head first Java》和《head first设计模式》如果你们对本系列的其他书籍也感兴趣的话,欢迎留言告诉我,届时我也会都去看看,再来推荐给你们。
下面我们就来看看《head first Java》这本书到底有什么魔力。

《Head First Java》(中文版)(第2版)是本完整的面向对象(object-oriented,OO)程序设计和Java的学习指导。此书是根据学习理论所设计的,让你可以从学习程序语言的基础开始一直到包括线程、网络与分布式程序等项目。最重要的,你会学会如何像个面向对象开发者一样去思考。
而且不只是读死书,你还会玩游戏、拼图、解谜题以及以意想不到的方式与Java交互。在这些活动中,你会写出一堆真正的Java程序,包括了一个船舰炮战游戏和一个网络聊天程序。
这是百度百科对于本书的介绍,说实话,这本书和其他的我Java类型书籍真的大不相同,它不会一本正经地去说技术概念和原理,而是通过生动有趣的方式去拆解一些复杂的知识点,就好像讲师在讲课的时候,喜欢讲段子而不仅仅扯概念。
不仅这本书,而且本系列的其他书籍也是这么干的,这种用“幼儿园水平”降维分析的方式,对于初学者来说真的是一大福音,书籍的背后是作者和策划人,我们不妨来看看到底是何方神圣。
作者介绍 配图

这位姐姐叫做Kathy Sierra,她是O'Reilly出版社Head First系列图书策划人之一,也是大型Java开发者社区JavaRanch.com创办人,同时还是多款教育类和娱乐类游戏主要开发人员。
你可能一位她是一个程序员,但实际上,她深谙产品交互之道和认知科学理论,为加利福尼亚大学洛杉矶分校创立了新媒体与交互设计课程。
多年来,她一直帮助大公司、创业公司、非营利组织和教育者重新思考打造用户体验的方法,培养持续忠诚的用户。
你也可以在Head First这个系列中看出她在书籍内容设计时的用心良苦,确实是站在了用户角度进行思考,把一些技术难题用巧妙的游戏和对话一一化解。
这本书适合你么?
适合人群:Java新手可以看,有经验的Java程序员看也会有收获
前置条件:最好有一定的计算机基础,没有的话也无伤大雅
我的读后感
第一次看这本书,是在我初学Java的时候,那个时候我对于Java一窍不通,到处在网上搜集书单,通常我们在某乎上的都可以看到这些书籍《Java编程思想》《Java核心技术卷一》《疯狂Java》等等,先不说这些书籍的好坏,但是它们都属于比较正统的优秀Java书籍,具有权威性和科学性,同时具有一定的迷惑性:大家都说好,那一定就是好,别人都推荐,那我也推荐吧。
于是乎人云亦云,不区分场合,不考虑用户属性,理所当然的,这些书成为所有Java学习者的生活必需品。
当时我看到《head first Java》这本书时,大致浏览,就觉得怎么花里花哨的,完全没有其他基本正统书籍的严谨性和科学性啊,这种书籍一定不适合我啊,于是弃之。
最近我正准备找几本Java书籍推荐给大家,无意中又翻开了这本书,结果“真香”我一个学了两年Java的人,看这本书居然感觉受益良多,很多之前一知半解的知识点都能在书里找到答案。
比如第一章,讲解Java的基本概念时,我发现它把Java的工作方式讲的特别清楚,而这些知识点你看再多的博客和面试题有时候都不一定知道。
再比如讲解继承、重载、多态,以及接口抽象类概念的时候,本书会清晰地告诉你为什么会有这些概念,该如何使用,编排顺序合理,组织逻辑缜密。
还有就是对于垃圾回收机制的讲解,和其他专门介绍jvm的书籍不一样,这部分内容可以快速让你知道垃圾回收的基本原理。
可以说,除了图形化应用的章节已经过时不用看了之外,本书每部分的内容都是精华,从异常处理、网络和线程、IO和序列化,再到集合和泛型这些Java核心技术,以及最后关于jar包、部署、RMI等实战类的内容,每一个章节都值得你认真读一读。
无论你是Java小白,准备找工作的Java练习生,还是工作多年的Java工程师,我相信这本书都会对你有所帮助。
微信公众号【程序员书单】一个为程序员推荐好书的公众号。每周为你pick精品书单,优质学习资源和工具软件。关注前沿技术与行业资讯,更关注你的自我提升。人生苦短,要把时间浪费在美好的事物上~

这本最适合夯实基础的经典 Java 书籍,可能80% 的 Java 程序员没有认真看过!的更多相关文章
- Java程序员金三银四精心准备的面试题及答案(基础篇)
1.面向对象的特征有哪些方面? [基础] 答:面向对象的特征主要有以下几个方面: 1)抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面.抽象并不打算了解全部问 ...
- 夯实Java基础系列19:一文搞懂Java集合类框架,以及常见面试题
本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点下 ...
- C#夯实基础之多线程二:主线程、前台线程与后台线程
我们在<C#夯实基础之多线程一:初识多线程>一文中第二部分中指出,既然windows最终发展出了多线程模型,按理说,我们直接使用一个.NetFramework的线程类就可以直接撸代码了,但 ...
- 二十三. Python基础(23)--经典类和新式类
二十三. Python基础(23)--经典类和新式类 ●知识框架 ●接口类&抽象类的实现 # 接口类&抽象类的实现 #①抛出异常法 class Parent(object): ...
- SQL夯实基础(九)MySQL联接查询算法
书接上文<SQL夯实基础(八):联接运算符算法归类>. 这里先解释下EXPLAIN 结果中,第一行出现的表就是驱动表(Important!). 对驱动表可以直接排序,对非驱动表(的字段排序 ...
- 软件测试面试题-适合零基础和工作多年的re
软件测试面试题整理,可以看看:适合零基础和多年工作经验跳槽的人 有些问题会深挖,就不在整理了 详看图片:
- CV与IP:基础,经典以及最近发展
原文链接:http://blog.csdn.net/dcraw/article/details/7617891 原文编写层层递进,逻辑清晰: 不过看这篇转载可以少点击鼠标:http://blog.cs ...
- 夯实Java基础系列7:一文读懂Java 代码块和执行顺序
目录 Java中的构造方法 构造方法简介 构造方法实例 例 1 例 2 Java中的几种构造方法详解 普通构造方法 默认构造方法 重载构造方法 java子类构造方法调用父类构造方法 Java中的代码块 ...
- 夯实基础系列四:Linux 知识总结
前言 前三节内容传送门: 夯实基础系列一:Java 基础总结 夯实基础系列二:网络知识总结 夯实基础系列三:数据库知识总结 现在很多公司项目部署都使用的是 Linux 服务器,互联网公司更是如此.对于 ...
随机推荐
- JavaScript----DOM和事件的简单学习
##DOM简单学习 * 功能:控制html文档的内容 * 代码:获取页面标签(元素)对象:Element * document.getElementById("id值"):通 ...
- Java 添加、删除Excel表单控件
通过表单控件,用户可以快速地将数据填写到模板文档中,轻松引用单元格数据并与其进行交互.本文通过Java代码示例介绍如何在Excel表格中添加表单控件,包括文本框.单选按钮.复选框.组合框.微调按钮等: ...
- LightOj 1197 Help Hanzo 区间素数筛
题意: 给定一个区间a,b,a-b>=100000,1<=a<=b<=231,求出给定a,b区间内的素数的个数 区间素数筛 (a+i-1)/ ii向上取整,当a为 i 的整数倍 ...
- ArcSDE数据库、文件地理数据库和个人地理数据库的区别
Geodatabase地理数据库分为: Personal Geodastabase个人地理数据库, File Geodatabase文件地理数据库, ArcSDE Geodatabase SDE地理数 ...
- 事务框架之声明事务(自动开启,自动提交,自动回滚)Spring AOP 封装
利用Spring AOP 封装事务类,自己的在方法前begin 事务,完成后提交事务,有异常回滚事务 比起之前的编程式事务,AOP将事务的开启与提交写在了环绕通知里面,回滚写在异常通知里面,找到指定的 ...
- 求第 k 小:大元素
#include<bits/stdc++.h> using namespace std; void swap_t(int a[],int i,int j) { int t=a[i]; a[ ...
- iOS 构建动态库
一.构建步骤 创建一个动态库 MyDynamicFramework 创建一个测试类 在 MyDynamicFramework.h(默认生成,可统一暴露头文件) 中 #import "Pers ...
- iOS OCR
身份证识别,又称 OCR 技术.OCR 技术是光学字符识别的缩写,是通过扫描等光学输入方式将各种票据.报刊.书籍.文稿及其它印刷品的文字转化为图像信息,再利用文字识别技术将图像信息转化为可以使用的计算 ...
- Flutter 不可错过的学习资源
老孟导读:今天给大家分享一下我在学习Flutter的过程中整理的资料,这些文章或者开源项目都是精挑细选的,希望可以帮助到到家.另外相关资料会在Github一直更新,欢迎大家fork,如果喜欢的话给个小 ...
- 基于Java的数字货币交易系统的架构设计与开发
前言 无论是股票交易系统,还是数字货币交易系统,都离不开撮合交易引擎,这是交易平台的心脏.同时,一个优秀的架构设计也会让交易平台的运维和持续开发更加容易.本文基于对开源项目的深入研究,总结了数字货币交 ...