书是系统化知识的来源,想要提高Java水平除了要多实践、阅读源码、和资深人士交流等,书籍系统的学习更是精进技术的关键。
51学工坊整理了一份Java的入门、进阶及算法的书单,下面就给程序员小伙伴们分享:
Java基础篇
Head-first系列
(适合完全不了解Java的纯小白)
HeadFirst系列在各个细分领域和技术都是非常好的入门书籍。这一系列书籍的共同点就在于,对于功能的介绍基本都是秉承[设定目标-设计最初解决方案->遇到问题->借助解决问题的需求,介绍新的技术或者功能->加入这个新的技术和功能,进而改进原有解决方案->解决问题]。
所以,相比较传统讲技术的书来讲,加入了使用一项功能或者技术的场景和需求,一切看上去都那么自然和有必要,也印象深刻。使得整个学习过程一气呵成又深入浅出。
HeadFirst 系列书籍是由O’Relly出版社发行的一系列教育书籍,中文一般翻译为“深入浅出”,它强调以特殊的方式排版,由大量的图片和有趣的内容组合构成,而达到非疲劳的沉浸式学习效果。这对一些想要学习编程,但又无法产生真正兴趣的小伙伴来说,无疑是一个很棒的东西。
《疯狂Java讲义》
(有点类似于java字典)
本书深入介绍了Java编程的相关方面,内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、JavaGUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制。
覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。
这本书重点介绍了Java9的模块化系统,还详细介绍了Java9的jshell工具、多版本JAR包、匿名内部类的菱形语法、增强的try语句、私有接口方法,以及Java9新增的各种API功能。
《疯狂Java讲义》为所有打算深入掌握Java编程的读者而编写,适合各种层次的Java学习者和工作者阅读,也适合作为大学教育、培训机构的Java教材。但如果只是想简单涉猎Java,则本书过于庞大,不适合阅读。
《Java核心技术I/II》
(比疯狂Java讲义更深一级的java字典)
这是Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。
一直以来,《Java核心技术》都被认为是面向高级程序员的经典教程和参考书,它内容翔实、客观准确,不拖泥带水,是想为实际应用编写健壮Java代码的程序员的首选。如今,本版进行了全面更新,以反映近年来人们翘首以待、变革最大的Java版本(JavaSE 8)的内容。
这一版经过重写,并重新组织,全面阐释了新的JavaSE 8特性、惯用法和实践,其中包含数百个示例程序,所有这些代码都经过精心设计,不仅易于理解,也很容易实际应用。
这本书为专业程序员解决实际问题而写,可以帮助你深入了解Java语言和库。在卷I中,Horstmann主要强调基本语言概念和现代用户界面编程基础,深入介绍了从Java面向对象编程到泛型、集合、lambda表达式、SwingUI设计以及并发和函数式编程的*新方法等内容。
Java算法篇
《java算法图解》
入门类型的书籍,读起来比较浅显易懂,非常适合没有算法基础或者说算法没学好的小伙伴用来入门。示例丰富,图文并茂,以让人容易理解的方式阐释了算法.读起来比较快,内容不枯燥!
这本书籍通过图片、打比方等通俗易懂的方法来讲述,让你能达到懂一些基础算法,线性表,堆栈,队列,树,图,DP算法,背包问题等,不要求会实现,但是看过以下这些书对于之后实现算法打下坚实的思维基础。
很适合在闲暇之余拿出来阅读一番。
《算法(第4版)》
算法(第4版)》全面讲述算法和数据结构的必备知识,具有以下几大特色。
1、算法领域的经典参考书:Sedgewick畅销著作的*版,反映了经过几十年演化而成的算法核心知识体系。
2、内容全面:全面论述排序、搜索、图处理和字符串处理的算法和数据结构,涵盖每位程序员应知应会的50种算法。
3、全新修订的代码:全新的Java实现代码,采用模块化的编程风格,所有代码均可供读者使用。
4、与实际应用相结合:在重要的科学、工程和商业应用环境下探讨算法,给出了算法的实际代码,而非同类著作常用的伪代码。
5、富于智力趣味性:简明扼要的内容,用丰富的视觉元素展示的示例,精心设计的代码,详尽的历史和科学背景知识,各种难度的练习,这一切都将使读者手不释卷。
6、科学的方法:用合适的数学模型精确地讨论算法性能,这些模型是在真实环境中得到验证的。
7、与网络相结合:配套网站algs4.cs.princeton.edu提供了本书内容的摘要及相关的代码、测试数据、编程练习、教学课件等资源。
《算法导论》
一直以来,《算法导论》都是计算机领域学习算法的不二法门,这是一门导论性的书籍,但它的内容却异常丰富,足以满足普通程序开发人员的日常需求。因此,学习《算法导论》也成了每一位程序员的必经之路。
作为殿堂级的算法工具书《算法导论》,讲解了常见的算法和数据结构,分类细致且论证通俗;内容包含排序和递归、广度优先与生成树、线性规划以及诸多穷尽智力而不能读懂的算法。
文字深入浅出且没有学术教条,例题相当具有范式意义;再也不必为了一个算法的逻辑意义和代码实现去刷论坛了。
以上就是51学工坊为大家推荐的几本算法书籍,当你计划开始学习一门课程、阅读一本经典教材时,请先明确你要期望达到的目标。具体来说,就是问自己一个问题:
我期望从这本书中收获哪些东西?
不同的课程、不同的书籍,期望的目标应该是不一样的,并且是越具体越好。
比如看上面的入门系列,可以抱着娱乐的心态在业余时间看看。而看基础系列,就要规划好一段时间,边看边做笔记。
在这里推荐一个学习方法给小伙伴们:多遍扫描法。
第一遍是略读。
把一本书从头翻到尾,快速地阅读,不深钻细节,只看背景、结论和实际应用,即使遇到看不懂的地方也不要停下来,继续看下去,这一遍的目的是让你对这本书有一个总体上的印象。基于这个印象,你就能确定全书哪里难,哪里易,哪里是重点,这样就能制定下一步的攻读策略。
第二遍则是“细读”与“攻读”。
选择你感兴趣的,感觉最重要的内容慢慢地读,可以采用一些行之有效的阅读手段(比如记要点然后尝试回顾、绘制思维导图等)吸收书中的知识。对于难点,关键是弄明白为什么你看不懂(数学公式看不懂?关键术语不明白?翻译有问题?),你就能对症下药了,比如本书写得太抽象,可以先看看比较浅显的科普类书籍,之后再回过头来再看,或者找几本不同作者写的类似的教材对照着看……
上述过程可能需要重复几次。并且可能前后两次之间会间隔一个较长的时间。
人学习特定领域的知识需要一个过程,并且需要反复的。
所以要耐心,学习是很少有可能毕其功于一役的。一起加油吧,编程艺术家们!