Java后端零基础推荐教程

2023-06-14 0 935

近接触了一些在校生以及毕业一两年想要转码的同学后,对他们的人物画像和核心诉求有了基本了解。

那么这种情况下,不可避免的一个问题是,“如果我学计算机基础,有哪些推荐的教程?”

问的人越来越多,我就开始重视起来,开始以自己试读和去知乎上找资料的方式来探索答案了。

在这里存在一个“小马过河”的误区,如果你去找一个很资深的专家级人士推荐,他往往会给你推荐一些他心目中的圣书,即豆瓣上面哪些高分的、大而全的计算机黑皮系列书。

然后没过半个月,你就走完了从入门到放弃的全部流程。

原因是,那些黑皮书的确很经典,但并不适合新人做入门级别的教程,因为里面的内容充满了大量的专业术语和相对较深的底层原理。

基于此,我推荐一下JAVA后端零基础相关学习路线:

Java后端零基础推荐教程

一、Java基础

推荐书籍:《Java核心技术(12版)》

Java后端零基础推荐教程

这本书既然能出到12版,就已经能说明原因了。原书目录如下:

全书共12章,为你指明Java的学习路径:

☉第1章概述Java语言的特色功能;

☉第2章详细论述如何下载和安装JDK以及本书的程序示例;

☉第3章开始讨论Java 语言,包括变量、循环和简单的函数;

☉第4章介绍面向对象两大基石中重要的概念——封装,以及Java语言实现封装的机制——类与方法;

☉第5章介绍面向对象的另一个重要概念——继承,继承使程序员可以使用现有的类,并根据需要进行修改;

☉第6章展示如何使用Java的接口(可帮助你充分获得Java的完全面向对象程序设计能力)、lambda表达式(用来表述可以在以后某个时间点执行的代码块)和内部类;

☉第7章讨论异常处理,并给出大量实用的调试技巧;

☉第8章概要介绍泛型程序设计,使程序更可读、更安全;

☉第9章讨论Java平台的集合框架,以及如何充分利用内建的标准集合;

☉第10章介绍GUI程序设计和编写代码来响应事件;

☉第11章详细讨论Swing GUI工具包,以建立跨平台的图形用户界面

☉第12章讨论并发。

前九章必学,基本上包括了Java所有的基础知识点。

第十章和十一章略过,因为市面上的公司都不再用GUI和Swing了。

第十二章并发相关的知识,是一个初级程序员往上进阶的分水岭。

《Java核心技术(12版)》是一本不错的上手类书籍,在具备广度的同时也渐进式地增加了些许深度,给了初学者拔高的空间。

当然,每个零基础学员上手的接受程度不同,如果这本书还觉得比较吃力的话,那可以看下面这本书。打个比方,相当于给苦药加上一个糖皮吧。

推荐书籍:《Head First Java(第二版·中文版)》

Java后端零基础推荐教程

尽管《Head First Java》同样非常的厚,但趣味性是同类型是书籍最强的了,阅读起来给人一种如沐春风,兴趣盎然的感觉。

我们看看目录:

(1)进入Java的世界

(2)拜访对象村

(3)认识变量

(4)对象的行为

(5)超强力方法

(6)使用Java函数库

(7)对象村的优质生活

(8)深入多态

(9)对象的前世今生

(10)数字很重要

(11)有风险的行为

(12)看图说故事

(13)使用Swing

(14)保存对象

(15)网络联机

(16)数据结构

(17)发布程序

(18)分布式计算

附录A:程序料理决定版

附录B:十大遗珠之憾

再来感受一下文章中的片段:

忽然一阵阴风吹过来,它还来不及开口,垃圾收集器马上取走了它的性命。我吓得两腿发软,裤底。。。

引自第236页

呵呵,糖皮够甜了吧。

二、JVM

推荐书籍:《深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)》

Java后端零基础推荐教程

这本书是JVM领域当之无愧的扛把子,自2011年上市以来,前两个版本累计印刷36次,销量超过30万册,两家主要网络书店的评论近90000条,内容上近乎零差评,是原创计算机图书领域不可逾越的丰碑。

全书一共13章,分为五大部分:

第一部分(第1章)走近Java

系统介绍了Java的技术体系、发展历程、虚拟机家族,以及动手编译JDK,了解这部分内容能对学习JVM提供良好的指引。

第二部分(第2~5章)自动内存管理

详细讲解了Java的内存区域与内存溢出、垃圾收集器与内存分配策略、虚拟机性能监控与故障排除等与自动内存管理相关的内容,以及10余个经典的性能优化案例和优化方法;

第三部分(第6~9章)虚拟机执行子系统

深入分析了虚拟机执行子系统,包括类文件结构、虚拟机类加载机制、虚拟机字节码执行引擎,以及多个类加载及其执行子系统的实战案例;

第四部分(第10~11章)程序编译与代码优化

详细讲解了程序的前、后端编译与优化,包括前端的易用性优化措施,如泛型、主动装箱拆箱、条件编译等的内容的深入分析;以及后端的性能优化措施,如虚拟机的热点探测方法、HotSpot 的即时编译器、提前编译器,以及各种常见的编译期优化技术;

第五部分(第12~13章)高效并发

主要讲解了Java实现高并发的原理,包括Java的内存模型、线程与协程,以及线程安全和锁优化。

全书以实战为导向,通过大量与实际生产环境相结合的案例分析和展示了解决各种Java技术难题的方案和技巧。

三、Spring

推荐书籍:《Spring实战(第5版)》

Java后端零基础推荐教程

一本经典而实用的畅销Spring 学习指南,非常适合初学者快速上手,相较于第四版,第五版增加了很多全家桶相关的内容。

全书分为5 个部分,共19 章。

第1 部分(第1~5 章)涵盖了构建Spring 应用的基础话题。

第2 部分(第6~9章)讨论如何将Spring 应用与其他应用进行集成。

第3 部分(第10~12 章)探讨Spring对反应式编程提供的全新支持。

第4 部分(第13~15 章)拆分单体应用模型,介绍SpringCloud 和微服务开发。

第5 部分(第16~19 章)讨论如何为应用投入生产环境做准备以及如何进行部署。

四、MyBatis

MyBatis上手比较简单,建议自学。但如果实在不想把时间花费在上网找资料上,可以看看这本书。

推荐书籍:《MyBatis从入门到精通》

Java后端零基础推荐教程

必须实话实说的是,这本书跟精通一点儿关系都没有,它只适合入门学习,偏使用手册类型。

目录如下:

第1章 MyBatis入门 1

第2章 MyBatis XML方式的基本用法 15

第3章 MyBatis注解方式的基本用法 53

第4章 MyBatis动态SQL 63

第5章 Mybatis代码生成器 91

第6章 MyBatis高级查询 125

第7章 MyBatis缓存配置 177

第8章 MyBatis插件开发 195

第9章 Spring集成MyBatis 221

第10章 Spring Boot集成MyBatis 247

第11章 MyBatis开源项目 261

附录 类型处理器(TypeHandler) 295

五、MySQL

MySQL领域有三本神级书籍,即:《高性能MySQL(第三版)》、《MySQL技术内幕 : InnoDB存储引擎(第2版)》和《MySQL内核:InnoDB存储引擎》。

Java后端零基础推荐教程
Java后端零基础推荐教程
Java后端零基础推荐教程

这三本书几乎包含MySQL 的所有重点知识,也是面试常面的知识点:日志、存储、锁机制、索引、调度、事务、架构等。

但如果这三本书确实觉得难度过大,看不下去的话,我推荐这本书作为入门。

推荐书籍:《MySQL是怎样运行的:从根儿上理解 MySQL》

Java后端零基础推荐教程

面对底层原理如此复杂的MySQL,作者很用心设计本书的章节顺序,从现有场景引出可能出现的问题再到解决方案设计,循序渐进的揭开MySQL的内部实现细节,“刚开始是什么样子的”,“有什么问题”, “如何解决”, 一步一步娓娓道来,每一章的知识就是那么水到渠成,这不是讲解而是在设计。国内技术书籍都有这样的态度,那一定会崛起技术上的颠覆。

目录如下:

第0章 楔子——阅读前必看 1

第1章 装作自己是个小白——初识MySQL 3

第2章 MySQL的调控按钮——启动选项和系统变量 19

第3章 字符集和比较规则 34

第4章 从一条记录说起——InnoDB记录存储结构 55

第5章 盛放记录的大盒子——InnoDB数据页结构 72

第6章 快速查询的秘籍——B+树索引 90

第7章 B+树索引的使用 107

第8章 数据的家——MySQL的数据目录 132

第9章 存放页面的大池子——InnoDB的表空间 140

第10章 条条大路通罗马——单表访问方法 166

第11章 两个表的亲密接触——连接的原理 178

第12章 谁最便宜就选谁——基于成本的优化 190

第13章 兵马未动,粮草先行——InnoDB统计数据是如何收集的 210

第14章 基于规则的优化(内含子查询优化二三事) 220

第15章 查询优化的百科全书——EXPLAIN详解 245

第16章 神兵利器——optimizer trace的神奇功效 270

第17章 调节磁盘和CPU的矛盾——InnoDB的Buffer Pool 278

第18章 从猫爷借钱说起——事务简介 294

第19章 说过的话就一定要做到——redo日志 308

第20章 后悔了怎么办——undo日志 342

第21章 一条记录的多副面孔——事务隔离级别和MVCC 379

第22章 工作面试老大难——锁 401

参考资料 455

当然,如果这本书学员还觉得难,那能解救他的只有下面这本书了。

推荐书籍:《MySQL是怎样使用的:快速入门MySQL》

Java后端零基础推荐教程

完全从零基础用户的角度出发,依照用户认知习惯,从MySQL的安装开始,介绍了MySQL的服务器程序和客户端程序的使用、MySQL的数据类型、数据库和表的基本操作、列的属性、MySQL中的表达式和函数、简单和复杂的增删改查语句等入门知识,还介绍了视图、存储程序、备份与恢复、用户与权限管理等高级概念以及使用Java语言连接MySQL服务器等知识。

目录如下:

第1章 MySQL概述与安装 1

第2章 MySQL初体验 18

第3章 MySQL数据类型 35

第4章 数据库的基本操作 51

第5章 表的基本操作 55

第6章 列的属性 68

第7章 简单查询 82

第8章 带搜索条件的查询 92

第9章 表达式和函数 100

第10章 分组查询 121

第11章 子查询 129

第12章 连接查询 136

第13章 并集查询 149

第14章 数据的插入、删除和更新 154

第15章 视图 164

第16章 存储程序 170

第17章 备份与恢复 200

第18章 用户与权限 206

第19章 应用程序连接MySQL服务器 213

当然,如果学员以这本书进行切入的话,也意味着他的进阶之路相对较漫长。

六、Redis

入门Redis,最开始就是先学习操作Reids的相关命令,就像我们入门MySQL的时候,都是先学习SQL语言。

这里推荐下“尚硅谷Redis视频课”,在B站上可以看,讲的还是挺清晰的,把Redis很多重点知识都讲了,比如:Redis基本数据结构、持久化技术、主从复制、哨兵、集群等等,一套连招下来,就基本入门了。

链接如下:

https://www.bilibili.com/video/av247670776/?vd_source=d48aa446a4e226fb796739d01e246733

Java后端零基础推荐教程

另外,Redis 官网也有一整套的命令详解,遇到需要或者不会的地方可以查一下:

http://doc.redisfans.com/

Java后端零基础推荐教程

有了基础的入门后,接下来该推荐两本风格迥异的书。

推荐书籍:《Redis开发与运维》

Java后端零基础推荐教程

这本书最优秀的地方在于,不仅仅适合初学者入门,不要求读者有任何Redis使用经验,而且对DevOps开发者的实战提供了很有价值的帮助。

本书全面讲解Redis基本功能及其应用,并结合线上开发与运维监控中的实际使用案例,深入分析并总结了实际开发运维中遇到的“陷阱”,以及背后的原因, 包含大规模集群开发与管理的场景、应用案例与开发技巧,为高效开发运维提供了大量实际经验和建议。

目录如下:

第1章 初识Redis 1

第2章 API的理解和使用 15

第3章 小功能大用处 74

第4章 客户端 113

第5章 持久化 154

第6章 复制 168

第7章 Redis的噩梦:阻塞 189

第8章 理解内存 200

第9章 哨兵 226

第10章 集群 274

第11章 缓存设计 346

第12章 开发运维的“陷阱” 365

第13章 Redis监控运维云平台CacheCloud 392

第14章 Redis配置统计字典 430

如果说《Redis开发与运维》偏入门加实战的话,那么另一本经典书籍则是偏夯实内力,学习Redis源码背后的底层原理。这两本书搭配着看,真的是一对完美组合。

推荐书籍:《Redis设计与实现》

Java后端零基础推荐教程

这是一本Redis圣经级别的书,它太经典了!!!

这本书不是教你如何使用 Redis,而是讲解跟你讲Redis是怎么实现,怎么设计的,也就说源码级别的学习,但是书上并没有大段贴代码,作者是用伪代码的方式来讲解,所以读起来不会太难的。

书本上主要围绕这几大知识点:数据结构、AOF和RDB持久化技术、网络输入输出系统、主从复制、哨兵模式、集群模式。

不过有一点,这本书是以Redis2.6和3.0版本的源码进行讲解的,部分源码实现跟现在最新的7.0版本有些出入。

目录如下:

第1章 引言 1

第2章 简单动态字符串 8

第3章 链表 19

第4章 字典 23

第5章 跳跃表 38

第6章 整数集合 46

第7章 压缩列表 52

第8章 对象 60

第9章 数据库 90

第10章 RDB持久化 118

第11章 AOF持久化 138

第12章 事件 151

第13章 客户端 162

第14章 服务器 176

第15章 复制 198

第16章 Sentinel 219

第17章 集群 245

第18章 发布与订阅 290

第19章 事务 305

第20章 Lua脚本 321

第21章 排序 344

第22章 二进制位数组 362

第23章 慢查询日志 378

第24章 监视器 386

七、操作系统

B站关于操作系统课程资源很多,我在里面也看了不同老师讲的课程,觉得比较好的入门级课程是《操作系统 – 清华大学》,该课程由清华大学老师向勇和陈渝授课,虽然我们上不了清华大学,但是至少我们可以在网上选择听清华大学的课。

链接如下:

https://www.bilibili.com/video/BV1uW411f72n?p=1&vd_source=d48aa446a4e226fb796739d01e246733

Java后端零基础推荐教程

清华大学的操作系统视频课讲的比较精炼,涉及到的内容没有那么细,《操作系统 – 哈工大》李治军老师授课的视频课程相对就会比较细节,老师会用 Linux 内核代码的角度带你进一步理解操作系统,也会用生活小例子帮助你理解。

链接如下:

https://www.bilibili.com/video/BV19r4y1b7Aw/?spm_id_from=333.337.search-card.all.click&vd_source=d48aa446a4e226fb796739d01e246733

Java后端零基础推荐教程

用B站的两个视频预热之后,接下来我们就可以看看书了。

推荐书籍:《鸟哥的Linux私房菜 基础学习篇 第四版》

Java后端零基础推荐教程

这本书内容丰富全面,基本概念的讲解非常细致,深入浅出。各种功能和命令的介绍,都配以大量的实例操作和详尽的解析,是初学者学习Linux不可多得的一本入门好书。

全书分为五部分:

第一部分介绍计算机的基础知识、Linux的学习方法,如何规划和安装Linux主机以及CentOS 7.x的安装、登录与求助方法;

第二部分介绍Linux的文件系统、文件、目录与磁盘的管理;

第三部分介绍文字模式接口shell和管理系统的好帮手shell脚本,另外还介绍了文字编辑器vi和vim的使用方法;

第四部分介绍了对于系统安全非常重要的Linux账号的管理、磁盘配额、高级文件系统管理、计划任务以及进程管理;

第五部分介绍了系统管理员(root)的管理事项,如了解系统运行状况、系统服务,针对登录文件进行解析,对系统进行备份以及核心的管理等。

八、网络

计算机网络相比操作系统好学非常多,因为计算机网络不抽象,你要想知道网络中的细节,你都可以通过抓包来分析,而且不管是手机、个人电脑和服务器,它们所使用的计算网络协议是一致的。

先推荐下B站的《计算机网络微课堂》视频一起学习,这个视频是湖南科技大学老师制作的,PPT 的动图是我见过做的最用心的了,一看就懂的佳作。

链接如下:

https://www.bilibili.com/video/BV1c4411d7jb/?spm_id_from=333.337.search-card.all.click&vd_source=d48aa446a4e226fb796739d01e246733

Java后端零基础推荐教程

接下来,针对于HTTP入门,推荐书籍:《图解HTTP》

Java后端零基础推荐教程

作者真的做到完完全全的「图解」,书籍不厚,几天就可以看完了。

这本书对互联网基盘——HTTP协议进行了全面系统的介绍,由HTTP协议的发展历史娓娓道来,严谨细致地剖析了HTTP协议的结构,列举诸多常见通信场景及实战案例,最后延伸到Web安全、最新技术动向等方面。

这本书的特色为在讲解的同时,辅以大量生动形象的通信图例,更好地帮助读者深刻理解HTTP通信过程中客户端与服务器之间的交互情况。读者可通过本书快速了解并掌握HTTP协议的基础,前端工程师分析抓包数据,后端工程师实现REST API、实现自己的HTTP服务器等过程中所需的HTTP相关知识点本书均有介绍。

目录如下:

第1章 了解Web及网络基础 001

第2章 简单的HTTP协议 021

第3章HTTP报文内的HTTP信息 041

第4章 返回结果的HTTP状态码 053

第5章 与HTTP协作的Web服务器 065

第6章 HTTP 首部 075

第7章 确保Web安全的HTTPS 141

第8章 确认访问用户身份的认证 167

第9章 基于HTTP的功能追加协议 179

第10章 构建Web内容的技术 195

第11章 Web的攻击技术 207

针对于TCP/IP入门,推荐书籍:《图解 TCP/IP(第5版)》

Java后端零基础推荐教程

这是一本图文并茂的网络管理技术书籍,旨在让广大读者理解TCP/IP的基本知识、掌握TCP/IP的基本技能。

书中讲解了网络基础知识、TCP/IP基础知识、数据链路、IP协议、IP协议相关技术、TCP与UDP、路由协议、应用协议、网络安全等内容,引导读者了解和掌握TCP/IP,营造一个安全的、使用放心的网络环境。

本书适合计算机网络的开发、管理人员阅读,也可作为大专院校相关专业的教学参考书。

目录如下:

第1章 网络基础知识

第2章 tcp/ip基础知识

第3章 数据链路

第4章 ip协议

第5章 ip协议相关技术

第6章 tcp与udp

第7章 路由协议

第8章 应用协议

第9章 网络安全

九、算法

首先推荐B站《浙江大学的数据结构》课程,课程是陈越老师带大家用C语言来实现各种常见的数据结构。

链接如下:

https://www.bilibili.com/video/BV1H4411N7oD/?spm_id_from=333.337.search-card.all.click&vd_source=d48aa446a4e226fb796739d01e246733

Java后端零基础推荐教程

接下来,针对于数据结构算法入门,推荐书籍:《大话数据结构》

Java后端零基础推荐教程

这本书以一个计算机教师的教学过程为场景,讲解数据结构和相关算法的知识。全书以趣味方式来叙述,大量引用各种各样的生活知识来类比,并充分运用全彩色图形语言来解读抽象内容,对数据结构所涉及的一些经典算法做出逐行分析、多算法比较。与同类图书相比,这本书内容有趣易读,算法讲解细致深入,非常适合自学。

主要内容包含:

数据结构介绍、算法推导大O阶的方法;

顺序结构与链式结构差异、栈与队列的应用;

串的朴素模式匹配、KMP模式匹配算法;

二叉树前中后序遍历、哈夫曼树及应用;图的深度、广度遍历;

最小生成树两种算法、最短路径两种算法;

拓扑排序与关键路径算法;

折半查找、插值查找、斐波那契查找等静态查找;

稠密索引、分块索引、倒排索引等索引技术;

二叉排序树、平衡二叉树等动态查找;

B树、B+树技术,散列表技术;

冒泡、选择、插入等简单排序;希尔、堆、归并、快速等改进排序。

另外一本推荐书籍:《算法(第四版)》

Java后端零基础推荐教程

这本书作为算法领域经典的参考书,全面介绍了关于算法和数据结构的必备知识,并特别针对排序、搜索、图处理和字符串处理进行了论述。第4版具体给出了每位程序员应知应会的50个算法,提供了实际代码,而且这些 Java 代码实现采用了模块化的编程风格,读者可以方便地加以改造。

另外,这本书是最适合用来算法入门的,说它适合入门不是说它太浅,而是讲的深入浅出,非常容易理解。

目录如下:

第1章 基础 1

第2章 排序 152

第3章 查找 227

第4章 图 329

第5章 字符串 451

第6章 背景 558

刷题可从以下两个渠道:

第一个,牛客的剑指offer,链接如下:

https://www.nowcoder.com/exam/oj/ta?page=1&tpId=13&type=13

Java后端零基础推荐教程

第二个,Leetcode,链接如下:

https://leetcode.cn/problemset/algorithms/

Java后端零基础推荐教程

总结

最后要说的是,其实书并不一定要全部从头看完的,最好在学习某个知识点的时候,通过看多本书来一层层的学习这个知识点,这样你学起来的知识点会比较全面,也更加深入。

另外,做笔记建议使用思维导图,把思维导图当作一课自己的知识树,每深入学一个知识点的时候,就开一个分支去记录。

在记录笔记的时候,尽量少 copy 书上的内容,最好还是经过自己思考后用自己的话输出的笔记,这样更能加深记忆点。

完成上述的学习步骤,接下来就可以进阶了。

下面是我总结出来的基于后端技术栈的学习资料,能够涵盖90%以上的学习范围。

篇幅不长,基础好的同学在两个月左右突击期即可全部记忆掌握。

基础一般的同学,因该学习资料有些深度,建议以长线方式循序渐进地进行学习,预计半年左右可在技术深度和广度上产生质变。

另外,现在行业内卷比较严重,所以建议大家早日把leetcode刷起来,最好的方式是未雨绸缪,一天抽时间刷一两道题。

下面这套刷题笔记是谷歌无人车部门技术大神高畅(changgyhub)和阿里霜神(halfrost)整理的,每题都是追求极致的 runtime beats 100%。

Java后端零基础推荐教程
Java后端零基础推荐教程

磨刀不误砍柴工,有了工具利器后,往往能达到事半功倍的效果。

行业的未来依然是星辰大海,想象力有多大,天地就有多广阔。

最后,码字不易,如果我的总结对大家有用,请帮忙随手点个赞吧,谢谢。

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务