超级适合小白!学Java必读书籍,强烈推荐
坚决不浪费小伙伴的时间,直接上 Java 经典书单!
这年头,大家都不太愿意看专业性太强的书,可读性太差,这本head first Java趣味性很强, 除了文字以外,还有丰富的游戏、拼图、解谜题以及意想不到的内容,很不“正经”,但很“有趣”!
这是一本很厚很厚的书,但是技术专业性很强,前九章包括 “Java 程序设计概述”、“Java 程序设计环境”、“Java 的基本程序设计结构”、“对象与类”、“继承”、“接口”、“lambda 表达式与内部类”、“异常”、“断言和日志”、“集合”等等基础知识点,是 Java 程序员必须要掌握的内容,所以必须要看,十章往后的话,如果你想技术有所进阶,可以深入阅读。
该书的目标就是帮助读者更加有效地使用java编程语言及其基本类库:java.lang、java.util和http://java.io等等,全书的结构比较松散,可以根据需要阅读,不一定需要按部就班的从头读到尾。当然,很多人吐该书的中文翻译,有能力的朋友还是直接看英文原版可能学起来更容易些。
这是一部从工作原理和工程实践两个维度深入剖析JVM的著作,是计算机领域公认的经典,繁体版在台湾也很受欢迎,内容上几乎零差评,全文共13章,分为五大部分,第一部分主要是第一章的内容,系统介绍了Java的技术体系、发展历程、虚拟机家族等等;第二部分主要是讲自动内存管理;第三部分深入分析了虚拟机执行子系统;第四部分则讲解了程序的前、后端编译与优化;最后一部分讲解了Java实现并高发的原理,全书以实战为导向,通过大量与实际生产环节相结合的案例分析和展示了解决各种java技术难题的方案和技巧。
这应该是很多程序员,尤其是Java程序员倍感亲切的书,因为这本书可以说是他们当中很多人的入门初心。本书从最基本的程序理论知识出发,哪怕你完全没有Java基础,也可以通过这本书了解Java基本的程序设计、语言结构、面对对象程序设计等知识。书中还配了大量的代码和课后习题,让读者在了解有关Java的基础知识的时候,也能进行实践深入理解。
非常适合零基础、Java 编程爱好者来读。
全书主要分为四个部分:第一部分主要阐述Thread的基础知识;第二部分引入了 ClassLoader; 第三部分详细、深入地介绍volatile关键字的语义;第四部分也是最重要的一部分,站在程序架构设计的角度深入讲解了如何设计高效灵活的多线程应用程序。
哈哈,开个玩笑,但也确实是学java必读书目了,所以,阅读以上书目的时候,也要记得保持良好的阅读姿势,不然有可能这第五本书的翻看频率会比前四本还要高。
推荐给 Java 初学者硬核书籍,亲身经历让你少走弯路
[入门]
我在2001年之前是C/C++阵营, 有C和面向对象的基础, 后来转到Java ,发现没有指针的Java真是好简单, 另外Java 的类库好用的让人哭啊。
后来我就看《Thinking in Java》 ,《 Java 核心技术 》, 感觉也不吃力。
如果我之前没学过别的语言,或者半路出家转到计算机行业, 我不会先看上面那两本, 相反我会选《Head First Java》, 这本书非常适合零基础的小白, 读起来轻松搞笑, 不信你看看第一页
但是光看书也挺无趣的,不妨和视频结合着看, 网上讲解Java的视频非常多。
注意:视频的好处就是能看到敲代码的过程, 代码是活的, 这点很爽。 如果视频只是按PPT讲编程, 果断扔掉。
书也有书的好处,能写成书的, 肯定是作者经过系统化思考,梳理才能形成的东西, 所以系统性比较强。
书还有其他优点, 例如可以随便的翻, 找到重点反复的看。
所以混合着看经典书+优秀的视频 应该是最好的入门。
[实践]
软件行业的一大特点就是光看不做永远都学不会,编码不到10万行都不好意思出去打招呼。
所以实践,实践,实践!
在校期间,我还是会尽可能的去找项目做(参见我的另一篇文章《从现在开始丰富你的简历》, 回复“简历”查看) , 实在没找到,也可以先把基础打好
我上大学的时候用的是严蔚敏的《数据结构》, 当时我也把习题都做了一遍,考高级程序员的时候, 成绩非常好。
后来我知道了一本更好的算法入门书《算法》, 如果时光能够重来, 我还是会这本书上提到的所有数据结构和算法用Java 都实现一遍, 课后作业也争取都做一遍。
这是个非常重要的训练,因为我知道, 真的做了, 就会发现工作以后只要不是设计算法, 基本的数据结构没有能难住我的。
【Java SE】
对于Java集合框架, 不但要学会用, 我还会尝试着实现一遍,List, ArrayList, Set ,HashSet, Map ,HashSet 等等, 要是不知道怎么写, 看看JDK的源码就可以了, 那里有最好的老师。
实现一遍能更好的明白面向对象的设计, 接口,抽象类, 具体类的关系, 怎么分离职责,会学习到设计模式中的模板方法, Iterator 等 。
值得一提的是Iterator, 很有趣, 我还清楚的记得那一年自己实现集合框架中 Iterator 的时候的激动心情啊 ?
在实现Java 集合框架的时候, 可以顺便把泛型也学了, 不学不行,要不然实现不了啊。
Java 世界里,万事万物都是对象, 大家都知道封装,继承,多态, 但是仅仅了解这些只是入了门, 不可能做出真正的面向对象的程序。
有一本经典的书《敏捷软件开发, 原则,模式,实践》,里边详细的讲解了一个薪水支付案例,是迄今为止最好的面向对象设计的例子
我会用Java 把它实现一遍, 真正的体会一下OOD, 了解怎么才能把合适的责任分给合适的类, 什么叫面向接口而不是面向实现编程, 什么是优先使用组合而不是继承。
对于Java线程, 重点还是理解概念, 因为我知道在以后的工作中(除非从事系统级编程) ,自己写线程/线程池的机会是非常罕见的,都被类库,框架给封装好了。所以重点是理解,
看书的话就当然是《Java并发编程实战》 ,一大群大牛写的啊。
对于Java IO, 我觉得架构设计的很优雅,典型的学院派, 可就是不太实用, 打开读取一个文件都得用装饰者模式包装来包装去, 太累了。
项目实战中呢,也就是读取个property 文件, xml 文件。 我还是重点去理解概念和设计吧。
不过自己写个简单的xml 解析器倒是不错。
至于 AWT, Swing , 简单看看就行了, 我不会去深入研究, Java 是典型的服务器端的语言, 开发客户端程序的极少, 你想想, 你用Swing/AWT搞个桌面程序出来, 还得让客户装个JRE才能运行, 是不是有点过分 ? 据我所知,也即是银行的一些应用在用Swing ,AWT了。有人可能说 Applet,它曾经流行过, 现在早都没人用了。
所以我不会在Swing和AWT上浪费时间。
Java Reflection 看起来没有集合框架,线程,OO等那么耀眼, 但它可是很多框架(SSH) 的基础啊, 先把基础学会,后面的Java EE得用到它。
想真正的学好Java ,不了解Java 虚拟机怎么可能? 《深入理解Java 虚拟机》一定得看,看完的目标就是写个简单的Java 反编译器,至少要做到能解析class文件。
【做个有素养的Java码农】
我记得08的时候, 我的IBM经理说设计模式是必备技能, 不懂设计模式的我们不能要了。
所以设计模式是必学, 其实Java里边用的非常多,简直就是设计模式的活教材, 工厂方法,单例,模板方法, 装饰者,责任链都有体现。
当然我会去先看一下轻松的《Head First Design》, 《设计模式》的作者之一 Eric Gamma 都大力推荐, 绝对不容错过。
又过了几年, 我的IBM经理又说,现在我们默认设计模式大家都会了, 敏捷实践是必备技能 !
所以, JUnit 我得会, 重构我得会, TDD,持续集成这些最最基本的敏捷实践也得知道, 要不然会被人鄙视啊。
作为一个有追求的Java码农, 我写代码的时候要遵循Java 的编码规范,例如类名首字母大写, 报名要小写, 方法名要首字母小写…等等。
作为代码洁癖, 我受不了脏代码, 我会不断的打磨自己的代码,直到它像一个工艺品。
Java 的最佳实践 《effective java》 怎么能错过? 里边满满的全是JDK的作者们总结出来的java 编程最佳用法。
【Java EE】
走了这么远, 终于来到Java EE了, Java 不就是写服务器端的Web应用的吗?
我会自己写个Web程序, 可以考虑把上面提到的经典的薪水支付案例改造成Web 版, 用最基础的技术Servlet/jsp/jdbc 。
然后研究springmvc , 自己写个简单mvc框架, 在自己的Web 程序中用起来, 这叫吃自己的狗粮。
然后研究Hibenete/MyBatis , 自己写个简单的OR mapping框架, 再吃一次自己的狗粮。
然后读一下经典的书《J2EE development without EJB》 , 对,就是Spring 的作者Rod Johnson写的, 它颠覆了大家对于重量级EJB的认识, 开启了新的时代。
有了这本书的铺垫, 自己写个简化的依赖注入也不是难事, 写好后还是在自己的Web程序中用起来, 最后一次吃自己的狗粮。
【阅读代码】
熟读唐诗三百首,不会作诗也会吟
模仿是最好的学习! 多看看大牛们的代码是怎么写的, 潜移默化,自己的武功也能提高。
我身边要是有个好师傅, 跟着他,看着他编程, 提高的该有多快啊。
在学习Java SE和Java EE的同时, 我会读一下这些源代码:
JDK中的 Java Collection 源码 : 老祖宗的东西绝对经典
JUnit 源码 : 看看Eric Gamma 和 Kent beck 是怎么通过模式来创建系统的 (回复\”JUnit\”查看)
SpringSide : 以Spring Framework为核心的,Pragmatic风格的JavaEE应用参考示例,是JavaEE世界中的主流技术选型,最佳实践的总结与演示。
国人开发的,大力推荐一下。
另外如果有余力的,有兴趣的话, 当然可以阅读Struts, Spring, Hibernate的源码, 甚至参与进去开发了。
如何学习Java ,这是我这么多年来的感受, 也只是我的一家之谈。 欢迎和我交流 。
学习编程从来就不是一件容易的事情, 不可能看看视频,看看书就学会, 需要大量的编程和实践。 编程虽然是极为辛苦的脑力和体力劳动, 但其中蕴含的创造的乐趣也是无与伦比的。 希望每个人都能够享受这个过程,乐在其中。
今天就给大家分享到这里了,如果你对Java感兴趣,可以了解一下。这里还有2020最新的编程资料,需要的自取
1、点赞+评论(勾选“同时转发”)
2、关注小编。并私信回复关键字【java】(一定要私信哦~点击我的头像就能看到私信按钮了)
Java入门到精通要看哪几本书?收藏关注,让你的学习快人一步
Java入门只需两本。
第一本,Java编程思想(第4版),2007年出版,豆瓣评分9.1。推荐这本书的原因是它花了大量篇幅介绍了面向对象的特性,让你真正的能以面向对象的方式思考问题,并用编程的方式解答,因此这本书的英文名叫Thinking in Java,更好的中文翻译应该是“用Java来思考”。
第二本,Java核心技术卷一(第11版),2019年出版,豆瓣评分9.4。推荐这本书的原因是对新手友好,对细节覆盖更为全面,而且第11版覆盖到了Java 11,对Java编程思想是一个很好的补充。
精通Java离不开实践,实践离不开框架,框架离不开Spring,学习Spring离不开这三本书。
第一本,Spring实战(第5版),2020年出版,豆瓣评分6.5。书的质量不错,对Spring初学者友好,最后一章还涵盖了最新的Spring Boot的内容。评分低主要是翻译的问题,还有一些是没打好Java基础就来学Spring,肯定会遇到困难。
不过不用担心,点赞关注,后续视频会把今天推荐的所有书籍拆解一遍,划出重点,为你扫清学习障碍。
第二本,Spring Boot实战,2016年出版,豆瓣评分6.9。结合第一本,就可以掌握普通的Spring的应用开发,也有能力参与到实际的项目中去了。
第三本,Spring技术内幕第2版,2012年出版,豆瓣评分6.0。这本书主要是分析Spring框架本身,讲IoC和AOP的特性,从框架的源码级别进行分析,属于更加进阶的书籍,不推荐新手学习。后续我会用30个左右的短视频来把这本书的要点难点给大家梳理一下。
计划是按照今天推荐书籍的顺序来给大家拆解,同意的点赞收藏关注,有其他建议的请给我留言。
大家下期再见。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。