从入门到进阶,JAVA书籍的最佳阅读顺序!

本文首发于知乎,已获得1000+赞和收藏

原文链接:https://www.zhihu.com/question/269505829/answer/1791006152

先介绍下本人的情况,希望对大家学习Java之路有一定帮助。

本人本科完全没接触过Java,后自学Java,对整个技术栈有一些沉淀,并顺利拿到阿里巴巴集团校招offer,中间也走过很多弯路,希望对楼主有一些帮助。

看书一定要看经典书(不在多),先放图镇楼,然后按照由浅入深的顺序(Java语言基础->Java语言进阶->分布式&存储->修炼内功)来对书单做描述以及推荐的理由。

首先是语言基础,有了扎实的语言基础,才可能写出一手好的工业级的代码。

第一阶段、Java入门书单推荐

目的是掌握java语言基础,进行简单的开发。

学习内容:

1.Java入门书籍,后面有列举推荐。

2.代码规范。Java服务端遵循的是Oracle的Java语言编码规范,在编写代码之前,要先熟悉。

3.开发流程。了解开发流程,而且必须要熟悉每一个环节。开发流程大致是:功能开发→单元测试→功能测试→Code Review→集成测试→发布。

4.开发工具。对于入门者来说,首先建议你安装JDK+文本编辑器的开发工具包,并下载和你的JDK版本一致的API帮助。另外,你最好掌握常用类库和工具包,如goole guava等,因为JDK原生API在很多场景下并不方便。在选择Java IDE时,很多人推荐Eclipse,这个的话仁者见仁吧,我个人还是推荐Intellij IDEA,因为Intellij IDEA在调试、自动完成和重构方面的表现都比Eclipse更优秀。当然,在构建桌面的应用平台时,选择哪个就另当别论。

推荐书籍1:《head first java》

可以先从基础入手,掌握java语言基础知识:集合、多线程、网络、面向对象设计等。

首推《Head First Java》,这本书相比常见的另外两本书《Java编程思想》和《Java核心技术》,偏趣味性,语言也比较轻松,能将高深的知识讲的浅显易懂,不会让人觉得枯燥无味。

另外2本书大块头,部分章节比较枯燥难以理解,容易让初学者钻进去出不来。

推荐书籍2:《Java并发编程实战》

要写出工业级的代码,必然和并发脱离不了干系。程序员面试,并发也是必考知识点之一。

书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险、构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁、原子变量、非阻塞算法以及如何开发自定义的同步工具类。

第二阶段、Java语言进阶书单

需要掌握基本的调优技能以及面向对象设计的思想,为写出工业级代码打基础。

学习目标:服务端项目开发

学习内容:

1.Spring。项目开发必备。

2.关系型数据库。主要学习MySQL,包括设计MySQL表结构,基于执行计划的SQL分析优化根据业务特点分表分库,数据库容量规划等。

3.非关系型数据库。主要学习NoSQL,Hadoop、HBase、Hive这些常用的工具一定要学会使用。

4.服务容量规划和性能调优。性能调优知识、可靠性保障、故障处理、监控报警系统,这些也都要掌握。

推荐书籍3:《深入理解Java虚拟机》

作为Java程序员,不懂JVM是不行的。

本书详细讲解了类加载、java内存原理、垃圾回收机制等知识。只有掌握了JVM,才能在实际生产环境遇到线上问题如GC频率过高、内存溢出等应对自如、还有应用系统JVM参数合理配置。

本书是JVM公认的推荐好书,是Java进阶必看书籍。

推荐书籍4:《Java性能权威指南》

市面上专注于Java性能的并不多,能游刃有余地展示Java性能优化难点的更是凤毛麟角,本书即是其中之一。

通过使用JVM和Java平台,以及Java语言和应用程序接口,本书详尽讲解了Java性能调优的相关知识,帮助读者深入理解Java平台性能的各个方面,最终使程序如虎添翼。

推荐书籍5:《大话设计模式》

如果以前未接触过面向对象程序设计,那么本书必读,毕竟面向对象程序设计和C语言中面向过程设计有很大的不同。

 

第三阶段、分布式书单推荐

学习目标:中间件开发和分布式系统

学习内容:

1.开源项目:学会分析项目中的设计思路、中间件开发和项目源码,比如RocketMQ、Netty等。

2.知识体系构建。回顾自己的学习过程,建构自己的知识体系,多看大型网站系统和技术建构,了解核心原理和Java实践过程。

3.参与项目。参与项目的过程是提高深化的过程。在这个过程中你就能发现自己对那些知识掌握不足,也能够提高自己的能力,多参加项目才会提高更快。

4.根据自己的实际需求提升某方面技能。这就是个查漏补缺、优势扩大的过程。在流式计算上有优势,就进一步提升,在找一些相关的书籍精读。

推荐书籍6:《数据密集型应用系统设计》

吐血推荐,本书豆瓣评分9.7分,堪称分布式领域圣经,本人非常后悔没有更早的阅读本书。

本书并没有局限于那种分布式框架,而是着重讲解分布式整体架构设计理念和基础知识。

作者水平非常高,本书广度非常大(诚然并不是很深,要在一本书里将那么多知识深度讲解也是不可能的),深入浅出,大家不用担心晦涩难懂(在这里更加推荐英文基础好的话直接读英文原版)。

包含:分布式系统的存储(第三章存储、第五章复制、第六章分片)、分布式一致性、实时计算(第十章和十一章的批处理和流处理)。书中更是给出了相当多的参考文献链接,值得深入研究。

 书中有大量插图,将分布式系统高深的技术形象生动的描述,通俗易懂,比如下图是讲数据库多副本 并发写的问题的:

我最近也在三刷《设计数据密集型应用》,写了一些读书笔记,主要是帮助自己消化知识点,未来也会做一些实战案例,感兴趣的可以看一下我下面的专栏:

夏天:设计数据密集型应用-C5-主从架构及同步延迟问题

夏天:设计数据密集型应用-C5-多主数据复制架构

夏天:设计数据密集型应用-C5-去中心化复制架构

夏天:设计数据密集型应用-C6-分区和二级索引

夏天:设计数据密集型应用-C6-分区Rebalancing和路由

 

推荐书籍7:数据库《高性能MySQL》

本书深度讲解了mysql引擎架构、索引设计、SQL查询优化的实战技巧、复制、分片等原理,还有运维技能。适合精读。

如果是从事网络相关开发,如rpc框架、mq消息中间件,那么还需要掌握网络相关基础知识,以及业界有名的高性能网络组件Netty。

第四阶段、java内功修炼

推荐书籍8:《重构》

所谓精益求精,同一件事,同一个功能,让不同的人来做会写出不同的代码。本书通俗易懂,教你如何不断优化现有代码,逐步迭代重构,写出清晰易懂、功能正确、可扩展可维护的代码。

最后,看书是一方面,更重要的是实战,勤动手,看源码,多Debug,写DEMO,多参与开源社区讨论。如果大家觉得我的回答有用,请点个赞,谢谢!

  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: 《Kotlin从入门进阶》这本是针对Kotlin编程语言初学者和进阶者编写的,包括了Kotlin的基础知识、函数式编程、面向对象编程、Kotlin与Java的互操作性以及一些高级主题。 对于初学者而言,这本通过一步步引导读者学习Kotlin的基础知识,如变量、数据类型、运算符、条件语句、循环语句等等。通过一些简单的例子和实践让读者逐渐掌握Kotlin的基本语法。 对于进阶者而言,本涵盖了Kotlin的函数式编程、面向对象编程相关知识,这对于喜欢函数式编程的程序员来说是很有意义的。此外,该还讲解了Kotlin与Java的互操作性,读者可以学习如何在Kotlin和Java之间无缝转换和互操作。 针对高级主题,本也涉及到了Kotlin协程、Kotlin DSL等相关知识。这些高级主题对于进阶者而言是很有价值的。 总之,《Kotlin从入门进阶》是一本适合初学者和进阶者的Kotlin编程入门籍,它包含了Kotlin的基础知识和高级主题,通过阅读,读者可以逐渐掌握Kotlin编程语言,写出更加优秀的程序。 ### 回答2: 《Kotlin从入门进阶》是一本深入介绍Kotlin编程语言的籍,旨在帮助读者从入门到深入掌握该语言。这本的特点是通俗易懂,适合初学者,同时也提供了一些进阶的知识,可以满足进阶者的需求。以下是该的主要内容: 一、Kotlin基础知识的讲解。该介绍了Kotlin的基础语法,包括变量、数据类型、运算符、条件表达式和循环语句等。 二、函数和类的使用。该详细讲解了Kotlin中函数和类的定义和使用方法,并介绍了继承、接口等概念。同时,还提供了Kotlin中一些高级特性的介绍,如扩展函数、数据类等。 三、高级主题的深入讨论。该对Kotlin的一些高级主题进行了深入讨论,如协程、Lambda表达式、反射、注解等。这些知识点对于想要深入掌握Kotlin的开发人员非常有用。 四、实战应用。该提供了一些实战案例,其中包括基于Kotlin进行Android开发和Web开发的案例。这些案例将Kotlin的基本知识和高级特性与实际开发场景相结合,能够帮助开发人员更好地理解Kotlin语言的使用。 五、学习资源。该还提供了一些学习资源,如在线文档、网站和开发工具的介绍等,这些资源能够帮助开发人员更好地学习和使用Kotlin语言。 《Kotlin从入门进阶》是一本非常实用的Kotlin学习指南。读者可以通过该快速掌握Kotlin的基础知识,同时还可以对Kotlin的高级特性和实战应用有更深入的了解。 ### 回答3: “Kotlin从入门进阶”是一本介绍Kotlin语言的入门教材,适合初学者学习和入门。在中,作者从Kotlin语言基础开始讲起,让读者了解Kotlin的语法、数据类型、循环、条件语句、函数等内容,并介绍了面向对象编程中的类、继承、接口、扩展函数等知识点。同时,中也提供了大量的实例代码,帮助读者更好地理解Kotlin语言的使用方法。 在进阶部分中,作者将更多地介绍Kotlin语言的高级特性,如协程、注解、DSL、反射、元编程等,让读者进一步掌握Kotlin语言的使用和应用场景,并获得更深入的理解。在进阶部分中,作者也提供了许多实践案例,帮助读者将Kotlin语言应用于实际开发中。 总的来说,“Kotlin从入门进阶”是一本非常全面的Kotlin语言教材,能够让初学者快速入门,并能够通过学习进阶部分,获得更深入的理解和应用能力。同时,中也提供了大量实例代码和实践案例,更利于读者掌握实际开发中Kotlin的应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

没有昵称阿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值