校招我是从6月份开始投递的,从提前批、学霸批、内推批,一直面到了秋招的正式批。期间大大小小的公司也有面试了20多家,从初创公司到接近一线互联网公司都有些offer。
现在算是圆满完成我的校招了,回望走过的路,踩过的坑,我发现,看过一些很好的书(想好好珍藏),也碰到过一些一般般的书。现在想分享出来,希望此文能帮到一些以后想从事Java后台开发工作的人...
一,按内容分为五类
Java基础
并发(多线程)
数据库
网络
算法
设计模式
二,详细介绍每一类
这些书全部都是我看过的,大部分都至少读了一遍到两遍,且还整理了笔记,少部分是挑的重点章节看的。
2.1 Java基础
《Java核心技术(上册)》:
此书是翻译自国外的书,因此内容上面读起来,讲的不是很通俗易懂,而且大多是停留在表面,翻译的内容偶尔翻译不恰当的地方,但整体来说,也可以作为一本入门加语法学习的书籍。
读完之后,对一些重要概念语法,会有一定的初步认识。此书我读了两遍,并整理了笔记。
《疯狂Java讲义》:
当初听同学推荐,因为他师兄找工作找的挺好,且推荐给他的这本书,因此我就买了一本。此书巨厚无比,我当初已有java基础,遂此书没有按部就班的看完,只是针对理解的不够的地方,重点研究,加深理解。
此书不仅涵盖java基础,还涉及数据库api的讲解,所以内容很多,且语言生动灵活,读起来通俗易懂,比之上一本《Java核心技术》要好上不少,毕竟是国人所写,而且也是业内人士。读起来会很畅快,遇到豁然开朗之处,忍不住会赞叹作者。
《EffectiveJava中文版》 :
此书里面列举了很多条Java开发中需要注意的原则。比方说hashCode和equals()的书写原则,这条当初印象贼深,因为我开发中见到过类似代码,不明白为什么那样写,正好当时业余时间,在看此书,读到这一部分,特别惊喜开心。
《深入理解JVM(第二版)》:
此书是我实验室师兄推荐。师兄找的工作也挺好,所以我们这一届人手一本,早早地开始研读。甚至到最后找工作的时候发现,我们最熟悉、掌握的最好的方面居然成了JVM了。
此书作为理解JVM运行原理、数据区划分、垃圾回收、类加载机制等方面是一本必须精读的好书。
《Java编程的逻辑》:
此书是同学推荐,理解jdk源码中基础数据结构原理的好书,作者是博士学历,而且也是资深工程师。牛人不仅自己牛,还把自己的知识、经验、理解分享出来,真的是希望这样的大牛越多越好。因为我对jdk源码有一定的理解,所以此书我没有读完,只是针对我不熟悉,理解的不深的地方着重细读,并对照jdk源码加以研究。
而且作者思路清晰,文字言简意赅,讲解直达要害,读起来不时会有茅塞顿开之感。书里不仅含有jdk中源码的逻辑,还在开始处,讲解了一些入门级的知识,比方说数在计算机中是怎么存储的,二进制的换算等等知识,对入门级的人,特别友好。
《实战Java虚拟机JVM故障诊断与性能调优》:
此书我只是初步看了大概,对JVM里的一些故障诊断,性能调优的工具有了初步的认识和使用,后序还需看书实际操作,才能加深对JVM调优的理解和实践。
2.2 并发(多线程)
《Java多线程编程实战指南(核心篇)》:此书非常详细透彻的讲解了,Java多线程编程当中,很多非常重要的概念,以及内jvm内部的原理机制。
对我建立一个初步的对Java多线程的一个整体的知识架构,很有帮助。而且有了很好的理论支撑以后,再进行开发的话,会起到很好的指导作用,不仅知其然,还知其所以然。好书,精读重点章节一遍,并整 理笔记。
《Java并发编程的艺术》:
此书比之上一本要次之,但也可作为入门书籍。书中对并发中的一些基础概念有一定的讲解,还有一些工具的用法,原理的话也有涉及,但涉及的不深。对于建立起并发初步的知识体系有帮助,但要想理解的更深一些,还是要精读上本“核心篇”。
《并发编程实战》:此书是jdk中并发包的作者Doug Lea前辈老爷爷写的书,质量肯定是杠杠的。但是我是听同学书,此书对初学者不是很友好,毕竟是翻译过来的书。
跟“核心篇”读起来,还是不一样的,但是此书也要强烈推荐,当读完了上面二本,再读此书。
2.3 数据库
《MySql必知必会》:
此书介绍了MySql数据库的入门知识,并对sql语句的编写进行了较为全面的讲解。此书是一本小薄本书籍,如果之前有接触过sql语句,再读此书,会读的很快。再多写一些sql语句练练手,sql语句就轻松掌握了。
《高性能MySql》:
此书也是巨厚无比,这本书我还没有啃完,只把几章重要的章节,精读了。翻译过来的书,总是读着有点别扭,不过边读此书,遇到不懂得搜搜博客,还是可以读下去的。
《MySql技术内幕InnoDB存储引擎》:
这本书就是国人写的书,读起来就舒服多了,透彻的讲解,如沐春风的感觉。读书就要读好书,讲的明白的书,就是好书。此书我一遍还未看完,后面会收拾它的。
《Redis设计与实现》:
此书是NoSql数据库里讲解Redis原理的好书,作者有对Redis数据库源码级别的分析,因此讲解的相对透彻,复杂的实现代码,用伪代码实现,便于读者对于设计原理的理解。
国庆节期间此书我已经读了一半,虽然有的地方,暂时读不懂,但是么事,继续读就是了,读懂为止。
2.4 网络
《计算机网络》-谢希仁:
此书是计算机专业的教材,现在都已经到了第7版了,选书的一个原则就是,要选那些版次很多的书,因为版次书,说明此书作者,一再的精进此书,而且侧面也说明了此书卖的相对较好,不然不会再版这么多次的。
《图解HTTP》:
此书也是翻译过来的,但是讲解的还算通俗易懂,只是讲解的相对不深,但对于HTTP协议建立起一个宏观的知识框架,和相对的技术细节,还是可以的。起码一些重要概念和技术细节是有了初步的了解掌握了。据说大牛都去看《TCP/IP详解》去了,我还没看过。
《深入分析JavaWeb》:
此书是阿里大牛写的书,内容比较宽泛,设计服务器,框架,网络等知识,较综合,但对于这几方面的全局知识性的掌握,很有帮助,可以在头脑中建立起一个大致完整的系统级架构和过程。
2.5 算法
《剑指offer》:
也是一本老书了。一般的面试题,经常有此书里面的改变题,或者偶有原题,对于一些常规编程题的解法和思路,和基础数据结构的运用,有很好的帮助。此书我刷了两遍,且把里面的编程题都自己实现。
《程序员代码面试指南-IT名企算法与数据结构题目最优解》:
此书包含大量的编程题的最优实现,题型涉及很多,很全,书也相对较厚。但是对于算法的思路,和大数据算法的思路有很大帮助,对于时间紧,又要找工作的人来说,很是有用。当然要想学好算法,肯定还得看别更系统的教设计算法的方法的书了。
2.6 设计模式
对于开发人员的话,设计模式还是有必要掌握一些的。
《HeadFirst设计模式》:此书内容生活活泼,配有很多形象生动的插图,HearFirst系列的书就是这样。我设计模式入门就是看的此书,书还配有一张设计模式大全的大大的纸质海报吧类似,要是贴在墙上,每天看看,说不定23中设计模式都能记住。
《大话设计模式》:此书讲解设计模式是根据实际业务出发的,里面用了很多的业务场景的例子来讲解对应的设计模式。如果没有对应业务的开发经验的话,读起来不是很友好。
2.7 框架
《SpringMVC学习指南》:此书讲解了使用Springmvc部分的方法,和里面组件的使用方法等。对于初步的对SpringMVC的使用时很有帮助的。
《看透SpringMVC》:此书是我SpringMVC源码时的辅助书籍,书里讲解了作者读源码的一些心得,对于新手读源码有一定的帮助。毕竟一开始读源码都觉得很难,此书陪你走过这第一道难关,以后读源码就没有那么畏难了。
《Spring技术内幕》:师兄推荐的,我没读完,读着被绕进去了,而且此书是根据3.x的源码讲解的,现在Spring早已经更新到了5.x了,很多地方都已经变了,期待作者再版啊。
最后
读书就是要读好书,好书才能越读越有趣,才能把书读厚,再读薄。