豆瓣9分以上,这7本Java经典名著,你还缺哪本?

Java作为企业级应用开发的首选,深受互联网大厂的青睐。对于求职找工作的朋友来说,Java可能仍然是后端工程师的优选,虽然Python热度不断上升,但是Java作为老牌语言,在企业中的地位依旧稳固,它的市场空间仍然是很难撼动的。

不同级别的IT从业者之间的工资差别非常大,相信每位程序员都不甘心只做一个“代码机器”,都希望自己的IT之路可以走得更长远!成为一名优秀的Java工程师需要掌握的知识相当多,除了Java编程语言外,操作系统、数据结构与算法、数据库、常用框架、设计模式、网站架构等等诸多技能也都是统统需要掌握。

学习Java有哪些必读的经典图书呢?下面为你推荐几本系统学习Java语言你必须要读的书!它们经过无数人口口相传,成为了Java领域顶流的经典名著!

如果你想正式、系统地学习Java,并打算将Java应用到实际工程项目中,那么这本《Java核心技术》必不可少。

《Java核心技术》曾获Jolt大奖,出版以来一直备受广大Java程序设计人员的青睐,畅销不衰。作者Cay S.Horstmann(美)紧跟时代变化,每个新版本都尽可能快地跟上Java开发工具包发展的步伐,而且每一版都重新改写了部分内容,以便利用Java的最新特性。

本书分为I、II两卷,完整讲解Java开发者学习路线,卷I:主要介绍Java语言的基础知识的专业级详解;卷II:主要介绍软件开发需要了解的高级主题。

学完本书,你将成为一个真正的Java程序员。这本书的全面并非简单的罗列,而是通过周密组织,从Java繁杂的内容中整理出一条清晰的主线,构成一个完整的知识体系。整本书不仅让你深入了解设计和实现Java应用涉及的所有基础知识和Java特性,还会帮助你掌握开发Java程序所需的全部基本技能。

  • 阅读建议

首先通读全书,准确理解主要概念,明确各个特性的作用和用法,不必深究细节。可以先跳过图形界面程序设计、Swing、以及部分日志章节。并发的知识比较深入,在基础阶段大致了解即可,后面需要花费大量精力单独学习。

之后进行第二轮学习,目标是具备开发能力,一方面结合书中介绍阅读和理解示例代码,特别是完整的程序清单,另一方面,要在开发环境中动手实践示例代码,另外可以尝试做些自己的修改和扩展,具体掌握如何使用Java特性,能够编写Java应用解决实际问题。

《Java语言程序设计》被世界各地的大学选作教材,全球畅销20余年,第12版根据Java9-11更新。本书通过示例讲解问题求解技巧,提供大量的程序清单,每章配有丰富的复习题和编程练习题,帮助读者掌握编程技术并解决实际开发中遇到的问题。

本书相较于《Java核心技术》更加的基础,如果你阅读《Java核心技术》有些吃力,建议从本书读起。

《Java核心技术》侧重技术,而《Java编程思想》侧重于“思想”,本书为你剖析Java中各个内容的设计理念。需要有一定编程基础的人才可阅读,即使很多内容还无法理解,但每次读完一定会有所收获。这是一本伴随我们技术成长的好书,买一本放在旁边,摸着就有底气。

“我很希望我10年前就能拥有这本书。有人可能认为我不需要任何Java方面的书籍,但是我需要这本书。”——Java之父James Gosling

Java 之父James Gosling鼎力推荐的书,你就知道要不要读了?作者Joshua Bloch曾是谷歌的首席架构师,属于超级技术大牛级别,自己也是几个关键Java类和API的作者。

针对如何编写高效、设计优良的程序提出了最实用、最权威的指导方针,通过90条简短、独立的经验法则,探索新的设计模式和语言习惯用法,帮你更加有效地使用Java编程语言及其基本类库,指引你少走弯路。

这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。适合已经掌握Java核心技术的程序员,想更加深入地了解Java编程语言的开发者阅读。是Java开发人员案头上的一本不可或缺的参考书。

对于 Java 程序员而言,能否熟练掌握并发编程是判断他优秀与否的重要标准之一。因为并发编程是 Java 语言中较为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。所以,想成为一名资深的 Java 后端工程师,并发编程必须要牢牢把握。

《Java并发编程实战》是Java并发编程里程碑著作!从并发编程的基本理论入手,逐步介绍了在设计Java并发程序时各种重要的设计原则、设计模式以及思维模式,使得开发人员能够更快地领悟Java并发编程的要领,快速地构建大规模的并发应用程序。

《Effective Java》一书的作者Joshua Bloch也参与到了本书的写作中。另一本国内作者《Java并发编程的艺术》也适合一并阅读。

在Java开发体系中,对架构师、系统调优师、高级程序员等角色的需求一直都非常大。各大厂在大规模的、企业级的生产开发中,都迫切需要开发人员对虚拟机的特性及调节方法具有很清晰的认识。学习虚拟机中各种自动运作特性的原理也成为Java程序员成长路上必然会接触到的一课。

JVM是大厂面试中非常重要的一环。不论是应届还是社招,面试国内的一些大厂,你都会被问到很多 JVM 相关的问题,只有搞懂了JVM 才有可能真正把 Java 语言 \”吃透\”。学习 JVM这部分的内容,一定要注意要实战和理论结合。

周志明老师写的《深入理解Java虚拟机》帮助国内数十万Java开发工程师和架构师加深了对JVM的认知,凭借一己之力拉高了 Java 开发者内功水平,把 JVM 带到了初级面试题环节。

这本大厂面试通关宝典第三版大幅更新50%以上内容,从Java技术体系、自动内存管理、虚拟机执行子系统、程序编译与代码优化、高效并发5个维度全面剖析虚拟机。以实战为导向,通过大量实际案例,分享解决各种Java技术难题的方案和技巧。几乎涵盖大厂面试全部知识点。值得所有Java技术人员一读再读。

Oracle官方发布,Java虚拟机技术创建人撰写,周志明等专家翻译,Amazon畅销书。完整且准确地阐述Java虚拟机规范,是深度了解Java虚拟机和Java语言实现细节的经典佳作。

最后,希望大家多学习、多思考、多练习,让自己变得更优秀!早日走向技术巅峰。

特别推荐↓

太厉害了!腾讯T4大牛把《数据结构与算法》讲透了,带源码笔记

经历过校招的人都知道,算法和数据结构都是不可避免的。

在笔试的时候,最主要的就是靠算法题。像拼多多、头条这种大公司,上来就来几道算法题,如果你没AC出来,面试机会都没有。

在面试(现场面或者视频面)的时候也会问算法题,难度肯定是没有笔试的时候那么难的。我们可以想象一个场景,一面面试面到一半,面试官让你反转二叉树,问问现在的自己,你还会吗。

不扯远了,如果还在上大学的同学可以先以排序和各种的基本数据结构开始入门。我花了一个星期将八大基础排序和链表/二叉树/栈/队列制作成一份精美的PDF

这份PDF阅读体验肯定是要比公众号和各大的博客平台的文章要好的。PDF内容为纯手打!

下面简单介绍一下八大基础排序和基础的数据结构,每种排序的思想和基础的讲解和源码在PDF里边有。

需要完整版笔记的老铁请转发+关注,然后私信回复 “架构书籍” 即可获得免费领取方式!

需要完整版笔记的老铁请转发+关注,然后私信回复 “666” 即可获得免费领取方式!

需要完整版笔记的老铁请转发+关注,然后私信回复 “架构书籍” 即可获得免费领取方式!

数据结构[队列]就是这么简单

  • 0.二叉树就是这么简单
  • 1.动态创建二叉树
  • 2.查询二又查找树相关

需要完整版笔记的老铁请转发+关注,然后私信回复 “666” 即可获得免费领取方式!

最后想要说明的是,排序算法/数据结构的代码可能不是最优解,代码的实现都是以比较容易理解的方式去写的。几乎每句代码都有对应的注释,应该是能看懂的。

左程云针对大厂头条、京东、腾讯、阿里算法面试题而讲解的视频,感兴趣的朋友可以关注我来领取一份

算法视频以及文中数据结构与算法的学习文档感兴趣可以来关注我私信回复【架构书籍】免费领取

推荐给 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】(一定要私信哦~点击我的头像就能看到私信按钮了)

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。