--- title: "00-鱼皮学习路线" created: 2025-12-02 tags: - Java --- # Java 学习路线 📚 > [!note] 本篇定位 > 鱼皮(编程导航)的 **Java 学习路线全文**,2251 行完整收录:符号表(🌕必须学 ~ 🌘有时间再学)+ 阶段 1-8(编程语言基础→巩固基础→企业开发基础/进阶→项目实战→Java 高级→求职→持续学习)。**与已有分区重叠的主题(Redis/设计模式/微服务/Netty 等)以本路线作索引,学习正文见 [[00-Java|00-Java]] 与 03-项目筑基 对应篇**。 **读法**:先看符号表定取舍 → 按阶段过知识点清单 → 阶段内每条知识点在 01-基础教程 ~ 04-拓展阅读 与 01-Java基础 里找对应正文。 ## 符号表 可以通过路线知识点前的表情字符,根据自己的实际情况选择学习: - 🌕 所有同学必须学习!!! - 🌖 非常急着找工作,才可不学;目标大厂,必须学习! - 🌗 急着找工作的话,可不学;目标大厂,建议学习 - 🌘 时间充足的话,再去学 - ⭐ 表示推荐资源 ## 前言 首先呢,我们要了解 Java 的应用场景和就业方向,看看和自己的学习目的是否一致。 目前,Java 由于其优秀的特性以及火爆的生态,岗位需求量大,是后台开发、安卓开发、大数据开发的主流编程语言,因此学习资源也很丰富,值得学习! ## 阶段 1:编程语言基础 ### 目标 培养兴趣、快速上手,能运行和编写简单的 Java 程序。 学完本阶段后,可以试着用 Java 解决一些数学计算问题、编写图书管理系统等桌面端 GUI 程序,甚至是五子棋之类的小游戏。 ### 🌕 Java 编程基础(45 天) #### 知识 - Java 特点(看不懂没事,别背!) - 环境搭建 - IDEA 开发工具 - 新建项目 - 运行调试 - 界面配置 - 插件管理 - **Java 基础语法** - 数据类型 - 流程控制 - 数组 - **面向对象** - 方法 - 重载 - 封装 - 继承 - 多态 - 抽象类 - 接口 - 枚举 - 常用类 - String - 日期时间 - 集合类 - 泛型 - 注解 - 异常处理 - 多线程 - IO 流 - 反射 #### 学习建议 1)坚持:初学一门语言时,一定要持续学习,不能中断! 2)实践:想要学好编程,一定要多敲代码!建议先跟着书上的例子敲一遍代码,然后试着自主编写代码,并完成课后练习。 3)万事开头难:不理解代码也没关系,可以学习 Debug 后,一行一行地打断点执行,查看程序的执行过程。千万不要觉得麻烦,养成习惯后真的能节省很多重复学习的时间。 #### 经典面试题 1. 为什么重写 equals 还要重写 hashcode? 2. == 和 equals 比较的区别 3. 为啥有时会出现 4.0 - 3.6 = 0.40000001 这种现象? 4. final 关键字的作用 5. 介绍 Java 的集合类 6. ArrayList 和 LinkedList 的区别 #### 资源 - 视频 - ⭐ 韩顺平 - 零基础 30 天学会 Java: (900 多集,顺序安排很合理,每个知识真正的打碎了,通俗、有示例、有实战、有思想) - 文档 - ⭐ 菜鸟教程: (可以在线练习) - 廖雪峰 Java 教程: - IDEA 中文教程: (可以作为课外书来看) - IDEA Mac 快捷键指南,地址: - IDEA Win 常用快捷键,地址: - 书籍 - 《Head First Java》 - 在线游戏 - Codegym: (玩玩前几关培养兴趣不错,但后面收费了,不太建议用) ### 🌖 Java 8(3 天) #### 知识 - Stream API - Lambda 表达式 - 新日期时间 API - 接口默认方法 #### 学习建议 Java 8 是如今企业开发中最主流的 Java 稳定版本,在这个版本出现了很多实用的新特性,虽然面试考点不多,但能够提升编程效率,建议学习。 此外,很多同学不怎么在简历上写自己会 Java 8,因此如果你把 Java 8 的知识点写在简历上,会大大加分的。 #### 经典面试题 1. Java 8 有哪些新特性? 2. HashMap 在 jdk 1.7 和 1.8 的区别? #### 资源 - 视频 - ⭐ 宋红康 - 全网最全Java零基础入门教程: (只看 Java 8 部分即可) - 文档 - ⭐ 菜鸟教程: - 书籍 - 《Java 8 实战》: - 工具 - ⭐ 在线编写运行 Java 8: - 其他 - Java 8 小代码片段: ### 练手项目 - Java 实现简单计算器: - Eclipse 实现 Java 编辑器: - 一本糊涂账: - Java 五子棋: - Java 中国象棋: - JAVA GUI 图书馆管理系统: - JAVA 坦克大战小游戏: - Swing 编写的俄罗斯方块: - 小小记账本: (适合了解数据库的同学) ### 尾声 学完了 Java 基础后,有些同学会感到迷茫了啊,感觉好像啥也做不出来,不知道下一步做什么,我这一身的本领该如何施展啊? 不要慌,也不要急着去学新技术,接下来我们要多用 Java 来写代码了,巩固基础,但是写什么呢? 当然是数据结构和算法! ## 阶段 2:巩固基础 注意!如果你时间不够(比如只有 6 个月左右),只是想快速找到工作,那么本章节甚至可以完全跳过,先去学习开发框架做项目,后面再慢慢弥补基础即可。 ### 目标 想学好编程,计算机基础知识要学好。 比如算法,是程序员的灵魂。学好算法有助于我们理解程序、开拓思路,因此也是很多公司面试时考察的关键,在找工作前,还是要刷个上百道算法题目的。 我们这个阶段的目标是:熟练使用 Java 语言来编写程序,巩固 Java 基础。(那直接用 Java 来写算法题目,一举两得,岂不美哉?) 此外,建议大家利用零碎时间多去了解 **计算机基础知识** ,比如操作系统、计算机网络等,对你后面学习开发框架之类的知识都有帮助。 ### Java 基础(30 天) #### 学习建议 建议大家去阅读 《Java 核心技术卷 1》,这本书堪称经典,是帮助你复习巩固 Java 的不二之选,其中图形界面章节可以选择不看。 之后可以刷网上免费的 Java 练习题,检验自己的水平,我当时刷了两遍 1000 题(每天 30 题,1 个月也就刷完了,二刷会更快!)。虽然都是选择题,但能学到很多 Java 语言的特性、避免写代码时容易犯的错误。 #### 资源 - 书籍 - ⭐《Java 核心技术卷 1》: 提取码: u74e ### 🌖 数据结构与算法 请参考学习路线 ### 🌘 计算机导论 详情请参考:计算机基础学习路线 #### 知识 - 计算机发展历史 - 计算机应用领域 - 计算机发展方向 - 计算机基本组成 - 二进制 - 编程语言发展 #### 学习建议 大学计算机专业的同学一般刚开学就会上这门课,虽说学习它并不会直接提高你的编程技能,但能够让你更了解计算机和编程,从而在一定程度上帮助你培养学习兴趣、确定学习方向。 自学的话,不用刻意去学习计算机导论,而是可以通过看视频、阅读课外读物的方式慢慢地了解计算机的故事。 #### 资源 - 视频 - 《计算机科学速成课》: (从底层到上层的计算机知识科普,强烈推荐) - 书籍 - 《半小时漫画计算机》: ### 🌖 操作系统 详情请参考学习路线:操作系统学习路线 #### 知识 - 操作系统的组成 - 进程、线程 - 进程 / 线程间通讯方式 - 进程调度算法 - 进程 / 线程同步方式 - 进程 / 线程状态 - 死锁 - 内存管理 - 局部性原理 #### 学习建议 说实话,操作系统这一块知识挺枯燥的。你说说我现在项目都不会做,你又让我看这些理论,是不是想让我头秃? 我的建议是,可以先利用课余时间看一些网课或者有趣的课外书,对一些操作系统的概念先有个大致的印象,比如进程、线程、死锁,等后面有时间了再系统学习、等到找工作了再去背相关八股文。 还在校园就跟着学校的进度学习就成,自学的话可以看下《清华操作系统原理》视频,有实力的小伙伴,能看懂大黑书就更好了,但如果看不懂也别担心,这并不影响你后续知识的学习。 #### 经典面试题 1. 什么是死锁?死锁产生的条件? 2. 线程有哪几种状态? 3. 有哪些进程调度算法? 4. 什么是缓冲区溢出? #### 资源 - 视频 - 《清华操作系统原理》: - 书籍 - 《编码》 - 《30天自制操作系统》 - 《现代操作系统》(难度较大,不推荐新手看) - 《深入理解计算机系统》(难度较大,不推荐新手看) - 《 自己动手写操作系统》(国产好书,网上可以下载) - 大学课件 - 浙大操作系统: ### 🌖 计算机网络 详情请参考学习路线:计算机网络学习路线 #### 知识 - 网络分层模型 - 网络传输过程 - IP、端口 - HTTP / HTTPS 协议 - UDP / TCP 协议 - ARP 地址解析协议 - 网络安全 - DNS 域名解析 #### 学习建议 很多学习 Java 开发的同学最后都是从事 **后端开发** 的工作,而计算机网络知识是后端开发的重点。 和操作系统一样,自学网络可能会很枯燥,建议先看有趣的课外书,比如《图解 HTTP》;或者有趣的视频,比如《计算机网络微课堂》。后面要找工作面试前,再重点去背一些八股文就好了。还在学校的同学好好上课一般就没问题。 学习基础能帮助自己今后发展更稳定,且更容易接受新知识,所以请不要相信基础无用论。 #### 经典面试题 1. 计算机网络各层有哪些协议? 2. TCP 和 UDP 协议的区别? 3. TCP 为什么需要三次握手和四次挥手? 4. HTTP 和 HTTPS 协议的区别? #### 资源 - 视频 - 《计算机网络微课堂》: - 书籍 - ⭐《图解 HTTP》 - 《网络是怎样连接的》 - ⭐《图解 TCP / IP》 - 大学课件 - 浙大计算机网络基础: ### 尾声 巩固基础要花至少 1 个月的时间,当你读完《Java 核心技术卷1》并且不用查询文档也能熟练地用 Java 做题时,就可以接着往下了。 ## 阶段 3:企业开发基础 ### 目标 面向薪资编程,学习实际后台开发工作要用的基础技术和框架,并能 **独立** 做出一个具有完整功能的 Java Web 项目。 学完这个阶段后,你应该已经能独立开发出大多数常见的后台系统了,比如各种管理系统、商城系统等。 ### 🌕 MySQL 数据库(7 天) 详情请参考学习路线:数据库学习路线 企业中大部分业务数据都是用关系型数据库存储的,因此数据库是后台开发同学的必备技能,其中 MySQL 数据库是目前的主流,也是面试时的重点。 #### 知识 - 基本概念 - MySQL 搭建 - SQL 语句编写 - 约束 - 索引 - 事务 - 锁机制 - 设计数据库表 - 性能优化 #### 学习建议 其中, **SQL 语句编写** 和 **设计数据库表** 这两个能力一定要有! 比如让你做一个学生管理系统,你要能想到需要哪些表,比如学生表、班级表;每个表需要哪些字段、字段类型。 这就要求大家多写 SQL、多根据实际的业务场景去练习设计能力。 #### 经典面试题 1. MySQL 索引的最左原则 2. InnoDB 和 MyIsam 引擎的区别? 3. 有哪些优化数据库性能的方法? 4. 如何定位慢查询? 5. MySQL 支持行锁还是表锁?分别有哪些优缺点? #### 资源 - 视频 - ⭐ 2022 黑马 MySQL 教程:(倾向于速成,初学只看完 P57 节前的基础篇即可,后面可以再来补进阶知识) - 老杜 - mysql入门基础 + 数据库实战: (内容相对精炼,有习题) - 尚硅谷 - MySQL基础教程: (小姐姐讲课,但感觉音质一般) - 在线练习 - ⭐ 鱼皮的闯关式 SQL 自学网: - ⭐ SQL 在线运行: - 文档 - SQL - 菜鸟教程: - MySQL - 菜鸟教程: - 网站 - [数据库大全](https://www.code-nav.cn/rd/?rid=b00064a76012546b016e274a3724c5f0):果创云收录的各种数据库表设计 ### 🌕 开发框架(60 天) Java 之所以能成为主流的企业开发语言,很大一部分原因是它完善的框架生态,用好框架,不仅能够大大提升开发效率,还能提高项目的稳定性、减少维护成本。 开发框架是后台开发工作中不可或缺的,也是面试考察的重点,一定要好好学! 不知道 Java 能做什么的朋友们,学完开发框架,就会有答案啦。 下面给大家推荐的都是企业中应用最多的主流开发框架,知识点比较零碎,就放在一起讲了。 #### 知识 ##### 🌕 Java Web - 描述:Java 网页应用开发基础 - 一丢丢前端基础 - XML - JSON - Servlet - Filter - Listener - JSP - JSTL - Cookie - Session ##### 🌕 Spring 5 - 描述:Java 轻量级应用框架 - IOC - AOP - 事务 ##### 🌕 SpringMVC - 描述:Java 轻量级 web 开发框架 - 什么是 MVC? - 请求与响应 - Restful API - 拦截器 - 配置 - 执行过程 ##### 🌕 MyBatis - 描述:数据访问框架,操作数据库进行增删改查等操作 - 增删改查 - 全局配置 - 动态 SQL - 缓存 - 和其他框架的整合 - 逆向工程 ##### 🌗 MyBatis Plus - 描述:Mybatis 的增强工具,能够简化开发、提高效率 - 引入 - 通用 CRUD - 条件构造器 - 代码生成器 - 插件扩展 - 自定义全局操作 ##### 🌕 SpringBoot 2 - 描述:简化 Spring 应用的初始搭建以及开发过程,提高效率 - 常用注解 - 资源整合 - 高级特性 - 本地热部署 ##### 🌗 Spring Security - 描述:Spring 的安全管理框架 - 用户认证 - 权限管理 - 相关技术:Shiro ##### 🌗 Maven / Gradle - 描述:项目管理工具 - 构建 - 依赖管理 - 插件 - 配置 - 子父工程 - 多模块打包构建 - Nexus 私服搭建 #### 学习建议 由于技术较多,且框架之间存在一定的联系,因此建议大家看同一系列的视频教程(尚硅谷、狂神说等等都可以),以保证学习内容的连续以及体验上的一致。 学这些技术的时候, **千万不能懒** !一定要多记笔记,并且跟着老师写代码。原理部分不要太过纠结,先以能跟着敲出代码、写出可运行的项目为主,有些东西做出来也能帮助你更好地理解理论。 学习顺序挺重要的,建议按我推荐的顺序学,不要一上手就学 Spring Boot。只有先学习下自己整合框架的方法,才能帮你理解 SpringBoot 解决的问题,感受到它的方便和高效。 Maven / Gradle 当成工具用就好,面试基本不问,跟着框架教程去用就行了,急着找工作的话,先不用花太多时间去深入学。大厂面试问这个的也不多。 #### 经典面试题 1. Spring 的 IOC 和 AOP 是什么,有哪些优点? 2. Spring 框架用到了哪些设计模式? 3. 介绍 Spring Bean 的生命周期 4. MyBatis 如何实现延迟加载? 5. 介绍 MyBatis 的多级缓存机制 #### 资源 已下资源分为两大类,希望快速做出项目、快速就业的同学请看【速成视频】。 - 速成视频(按顺序看,同类视频任意选择 1 个即可) - ⭐ 2023 黑马 JavaWeb:(包含了前端、MySQL 数据库、Java Web、MyBatis、Spring MVC、Spring、Spring Boot、Maven 等知识) - 2022 尚硅谷 SSM + MyBatis Plus 整合学习: - 2022 黑马 SSM + MyBatis Plus 整合学习: - 黑马 Spring Boot 2:(较新) - 尚硅谷 Spring Boot 2: - 非速成视频(按顺序看) - ⭐ 尚硅谷 JavaWeb 全套教程: (前端部分最好也看下) - ⭐ 尚硅谷 - Spring 5 框架最新版教程(idea版): - ⭐ 尚硅谷 - SpringMVC 2021 最新教程: - ⭐ 尚硅谷 - MyBatis 实战教程全套完整版: - ⭐ 尚硅谷 - MyBatisPlus 教程: - Maven 零基础入门教程: (搞不懂 Maven 可以看看) - ⭐ 雷丰阳 2021 版 SpringBoot2 零基础入门: - 尚硅谷 - SpringSecurity 框架教程: 学习完框架后,即可跟着鱼皮的原创项目教程系列边学边做项目。用项目驱动学习,更快地掌握后端必学技术,并直接写在简历上:[项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 。 ### 🌘 开发规范(3 天) 开发不规范,同事两行泪。 开发规范是团队开发中必须遵守的,有利于提高项目的开发效率、降低维护成本。 #### 知识 - 代码规范 - 代码风格 - 命名 - 其他规则 - 代码校验(CheckStyle) - 提交规范 #### 学习建议 有时间的话,简单过一遍大厂团队的代码规范手册就好了,以后做项目的时候能想起来的话就去使用,或者从书中、网上查规范文档,再去遵守。 项目做得多了,自然会养成好的习惯,不用刻意去记(毕竟每个团队规范也不完全相同,背了也没用)。也可以直接利用开发工具自带的一些代码检查插件,帮忙养成好的编码习惯。 #### 资源 - 书籍 - ⭐ 阿里巴巴 Java 开发手册: (搜索《Java开发手册》) - 视频 - 华山版《Java开发手册》独家讲解: - 文档 - Google Java Style Guide: (谷歌 Java 代码规范) ### 🌕 Git(3 天) 详情请参考学习路线:Git & GitHub 学习路线 此前大家可能听说过 GitHub,一流的代码开源托管平台。 Git 和它可不一样,是一个版本控制工具,可以更好地管理和共享项目代码,比如把自己的代码传到 GitHub 上、或者从远程下载。 无论自己做项目、还是团队开发,Git 都是现在不可或缺的神器。 #### 知识 - 区分 Git 和 GitHub - 工作区 - 分支 - 代码提交、推送、拉取、回退、重置 - 分支操作 - 代码合并、解决冲突 - 标签 - cherry-pick - Git Flow - 相关技术:SVN(比较老) #### 学习建议 每个命令跟着敲一遍,有个大致的印象,会用即可。 建议平时大家可以多把自己的代码使用 Git 命令上传到 GitHub 上,用的多了自然就熟悉了。 #### 经典面试题 1. 如何解决提交冲突? 2. 提交不小心出现误操作,如何撤销? 3. 什么是 Git Flow,它有什么好处? #### 资源 - 视频 - ⭐【尚硅谷】5h打通Git全套教程丨2021最新IDEA版 - 书籍 - 猴子都能懂的 Git 入门 - ⭐ GitHub 漫游指南 - 文档 - GitHub 官方文档: - 游戏 - Learning Git Branching: ### 🌖 Linux(10 天) 详情请参考学习路线:Linux 学习路线 企业中的很多前后台项目都是部署在 Linux 服务器上的,因此很有必要熟悉 Linux 的操作和脚本的编写。 后面学微服务、学架构都是在多台服务器操作,如果你不熟悉 Linux,会有点吃力。 #### 知识 - Linux 系统安装 - 环境变量 - 文件管理 - 用户管理 - 内存管理 - 磁盘管理 - 进程管理 - 网络管理 - 软件包管理 - 服务管理 - 日志管理 - Linux 内核 - **常用命令** - **常用环境搭建** - **Shell 脚本编程** - **VIM 的使用** #### 学习建议 多动手实践,建议自己购买一台云服务器,并且在本地搭建 Linux 虚拟机环境。 一定要自己从 0 开始手敲命令安装软件、部署服务,熟悉整个项目的上线流程。 每个命令至少要跟着敲一遍,了解它们的作用,并通过自然地练习,熟悉常用的 Linux 命令。 记不住没关系,用文档查就行了。 先会用,再理解。一般面试问的 Linux 题目也不会很难,面试前去背一下八股文就没什么问题,感兴趣的话可以去看看 Linux 内核设计。 #### 经典面试题 1. 如何查看某个进程的运行状态? 2. 如何在 Linux 上查看 2 G 的大文件? 3. Linux 软链接和硬链接的区别 #### 资源 - 视频 - ⭐ 2021 韩顺平 一周学会Linux (基于 CentOS 7.6 版本较新) - 书籍 - 《鸟哥的 Linux 私房菜 —— 基础篇》 (经典) - 文档 - Linux 工具快速教程:[https://linuxtools-rst.readthedocs.io](https://linuxtools-rst.readthedocs.io/) (基础、工具进阶、工具参考) - 实战 - ⭐ 蓝桥云课 Linux 基础入门: - 腾讯云动手实验室: - 阿里云体验实验室: - 阿里云知行实验室: - 华为云沙箱实验室: - 社区 - Linux 中国: - 工具 - ⭐ Linux 命令搜索: - Linux 命令大全手册: - Linux 命令示例: - 宝塔 Linux 面板: ### 🌘 前端基础(14 天) 详情请参考鱼皮原创的前端学习路线: 虽然 Java 程序员面试时基本不会出现前端相关问题,但是在企业中,往往需要前后端程序员配合完成工作。会一些前端,不仅可以提高你们的协作效率,还能提高自己对整个项目的了解和掌控力,甚至能独立开发出一个完整项目!这点也是能给面试加分的。 #### 知识 - HTML - CSS - JavaScript - Ajax - Vue #### 学习建议 不需要学习太多的前端技术,熟悉下基础的前端三件套,了解前端是如何向后端发送请求来做数据交互的一般就够了。有时间的话可以学下 Vue ,是比较容易上手的主流前端开发框架,Vue + SpringBoot 还是很香的。 ### 练手项目 推荐跟着鱼皮的原创项目教程系列边学边做项目,每个项目都是前端 + 后端的全栈项目。用项目驱动学习,更快掌握前端基础和后端必学技术,并直接写在简历上: [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd)。 - HotelSystem: (酒店管理系统 Java,tomcat,mysql,servlet,jsp实现,没有使用任何框架) - 超市管理系统: - Mall4j: (Spring Boot 电商系统) - newbee-mall: (基于 Spring Boot 2.X 的全栈电商系统) - litemall: (小商城系统,Spring Boot 后端 + Vue 管理员前端 + 微信小程序用户前端 + Vue 用户移动端) - forum-java: (一款用 Java Spring Boot 实现的现代化社区系统) ### 尾声 学完这个阶段的知识后,一定要再串起来回忆一遍,必须自己独立开发一个 Java Web 项目(量级可以不大,但你学过的技术尽可能地用上),能发布到 Linux 服务器上让其他小伙伴访问就更好了~ 如果你只是对 Java 感兴趣、或者只是想试着自己开发后台,并不是想靠 Java 找工作的话,学到这里就可以了。可以把更多时间投入到你主方向的学习中。 但如果你是想找 Java 方向的工作,尤其是想进大厂的话,一定要继续努力,用心学习下个阶段的企业开发进阶知识。 ## 阶段 4:企业开发进阶 ### 目标 学习更多企业级开发技术和编程思想,能够结合多种技术,独立开发出架构合理的完整系统, **解决实际问题** 。 要了解为什么需要这个技术?什么时候用这个技术?某个需求该用哪些技术? 当然,这个阶段的内容有些过于丰富,不是所有的东西都要学,大家可以根据自己的实际情况(时间),有选择地学习。 ### 🌘 软件工程 详情请参考学习路线:软件工程学习路线 软件开发和管理的一些概念、原则、技术、方法、工具和经验。 #### 知识 - 软件的本质 - 软件特性 - 软件过程 - 软件开发原则 - 开闭原则 - 里氏替换原则 - 依赖倒置原则 - 单一职责原则 - 接口隔离原则 - 迪米特法则 - 软件过程模型 - 敏捷开发 - 软件开发模型 - 需求建模 - 软件设计 - UML - 体系结构设计 - 设计模式 - 软件质量管理 - 评审 - 软件质量保证 - 软件测试 - 单元测试 - 集成测试 - 系统测试 - 压力测试 - 部署测试 - 软件配置管理 - 软件项目管理 - 软件项目估算 - 项目进度安排 - 风险管理 - 软件过程改进 - 成熟度模型 #### 学习建议 大学软件专业的必修课,偏理论,能学到很多企业软件开发的方法,也是对软件开发同学综合能力的提升,有时间的话可以了解下。但对想要快速找工作的同学来说,忽略即可,面试基本不会问。 #### 资源 - 书籍 - 《软件工程:实践者的研究方法》: (经典大黑书,讲的非常全面,但同样完整读下来还是有些难度的) - 《软件开发的 201 个原则》: (工具书,看一遍挺好的) - 视频 - 清华大学软件工程: - 北京大学软件工程: - 大连工业大学软件工程: - 大学课件 - 浙大计算机软件工程: ### 🌖 设计模式(21 天) 详情请参考学习路线: 设计模式是软件开发中解决一类问题的通用方法。 使用设计模式能让你写出更优雅、可维护的代码,也正因如此,很多框架源码都用到了设计模式,你不学很难看懂。 此外,鱼皮改了几百份简历,基本上没有同学把设计模式写在项目经历中。因此学好设计模式并写在简历上是很加分的! #### 知识 - 创建型模式:对象实例化的模式,创建型模式用于解耦对象的实例化过程 - 单例模式 - 工厂方法模式 - 抽象工厂 - 建造者模式 - 原型模式 - 结构型模式:把类或对象结合在一起形成一个更大的结构 - 适配器模式 - 组合模式 - 装饰器模式 - 代理模式 - 享元模式 - 外观模式 - 桥接模式 - 行为型模式:类和对象如何交互,及划分责任和算法 - 迭代器模式 - 模板方法模式 - 策略模式 - 命令模式 - 状态模式 - 责任链模式 - 备忘录模式 - 观察者模式 - 访问者模式 - 中介者模式 - 解释器模式 #### 学习建议 先理解概念,了解每个设计模式的特点和应用场景,再多加练习,运用到实际项目。 #### 经典面试题 1. 单例模式有哪些实现方式?有哪些优缺点?请手写其中一种 2. 你用过哪些设计模式,为什么用它? #### 资源 - 项目 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的聚合搜索项目、OJ 项目都运用了大量的设计模式,推荐学习 - 书籍 - ⭐《图解设计模式》(强烈推荐这本书,正是用 Java 语言实现,图多、有示例代码、有习题和答案,很不错) - 《Head First 设计模式》 - 《大话设计模式》 - 《设计模式:可复用面向对象软件的基础》(大黑书,有能力的话也可以去读) - 视频 - 尚硅谷图解 Java 设计模式: - 文档 - 菜鸟教程: - 图说设计模式: ### 🌕 Redis(14 天) 详情请参考学习路线:Redis 学习路线 缓存是高并发系统不可或缺的技术,可以提高系统的性能和并发,而 Redis 是实现缓存的最主流技术,因此它是后台开发必学的知识点,也是面试重点。 #### 知识 - Redis 基础 - 什么是缓存? - 本地缓存 - Caffeine 库 - 多级缓存 - Redis 分布式缓存 - 数据类型 - 常用操作 - Java 操作 Redis - Spring Boot Redis Template - Redisson - 主从模型搭建 - 哨兵集群搭建 - 日志持久化 - 缓存(Redis)应用场景 - 数据共享 - 单点登录 - 计数器 - 限流 - 点赞 - 实时排行榜 - 分布式锁 - 缓存常见问题 - 缓存雪崩 - 缓存击穿 - 缓存穿透 - 缓存更新一致性 - 相关技术:Memcached、Ehcache #### 学习建议 学会如何简单地使用缓存并不难,和数据库类似,无非就是调用 API 对数据进行增删改查。 因此,建议先能够独立使用它,了解缓存的应用场景;再学习如何在 Java 中操作缓存中间件,并尝试和项目相结合,提高系统的性能。 跟着视频教程实操一遍即可,可以等到面试前再去深入了解原理和高级特性。 #### 经典面试题 1. Redis 为什么快? 2. Redis 有哪些常用的数据结构? 3. Redis RDB 和 AOF 持久化的区别,如何选择? 4. 如何解决缓存击穿、缓存穿透、雪崩问题? 5. 如何用 Redis 实现点赞功能,怎么设计 Key / Value? #### 资源 - 项目 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的伙伴匹配系统、智能 BI 项目都运用了 Redis 解决实际问题,推荐学习 - 视频 - ⭐ 2022 黑马 Redis 从基础到原理:(结合项目去讲,强烈推荐) - 尚硅谷 - 2021 最新 Redis 6 入门到精通教程: (基于 Redis 6 的,推荐) - 文档 - Redis 命令参考: - Redis 面试题整理:[https://github.com/lokles/Web-Development-Interview-With-Java/blob/main/Redis问题.md](https://github.com/lokles/Web-Development-Interview-With-Java/blob/main/Redis%E9%97%AE%E9%A2%98.md) - 书籍 - 《Redis 实战》(经典) - 工具 - ⭐ Redis 在线练习: (强烈推荐) ### 🌖 消息队列(14 天) 消息队列是用于传输和保存消息的容器,也是大型分布式系统中常用的技术,主要解决应用耦合、异步消息、流量削锋等问题。后台开发必学,也是面试重点。 #### 知识 - 消息队列的作用 - RabbitMQ 消息队列 - 生产消费模型 - 交换机模型 - 死信队列 - 延迟队列 - 消息持久化 - Java 操作 - 集群搭建 - 相关技术:Kafka、ActiveMQ、TubeMQ、RocketMQ #### 学习建议 和缓存一样,学会如何使用消息队列并不难,无非就是调用 API 去生产、转发和消费消息。 因此,建议先能够独立使用它,了解消息队列的应用场景;再学习如何在 Java 中操作消息队列中间件,并尝试和项目相结合,感受消息队列带来的好处。 这里我建议初学者先学习 RabbitMQ,比 Kafka 要好理解一些。跟着视频教程实操一遍即可,可以等到面试前再去深入了解原理和高级特性。 #### 经典面试题 1. 使用消息队列有哪些优缺点? 2. 如何保证消息消费的幂等性? 3. 消息队列有哪些路由模型? 4. 你是否用过消息队列,解决过什么问题? #### 资源 - 项目 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的智能 BI 项目、在线判题系统都运用了消息队列解决实际问题,推荐学习 - 视频 - ⭐️ 2023 黑马 RabbitMQ 消息队列教程:(适合快速入门) - ⭐ 尚硅谷 - 2021 最新 RabbitMQ 教程: (更加全面) - 文档 - RabbitMQ 中文文档: - 书籍 - ⭐️ 编程导航原创 Rocket MQ 消息队列专栏: - 《RabbitMQ 实战:高效部署分布式消息队列》(经典) - 工具 - ⭐ RabbitMQ 在线模拟器: ### 🌖 Nginx(14 天) Nginx 是主流的、开源的、高性能的 HTTP 和反向代理 web 服务器,可以用于挂载网站、请求转发、负载均衡、网关路由等。前后端开发同学都需要学习,在后端开发的面试中有时会考到。 #### 知识 - Nginx 作用 - 正向代理 - 反向代理(负载均衡) - 常用命令 - 配置 - 动静分离(网站部署) - 集群搭建 - 相关技术:HAProxy、Apache #### 学习建议 Nginx 的基本使用非常简单,甚至不需要看任何的视频,跟着一篇文章就能够用它来提供网站访问能力、实现反向代理。 但是在企业中,Nginx 的使用往往没那么简单,作为负载均衡、请求转发的重要组件,往往需要针对实际场景去写一些特定的配置。因此建议有时间的话,实践下 Nginx 的配置方法,了解 Nginx 基本的设计思想,对今后自己设计系统时也有帮助。 #### 经典面试题 1. Nginx 有哪些作用? 2. Nginx 为什么支持高并发? 3. Nginx 有哪些负载均衡策略? 4. 什么是 Nginx 惊群问题,如何解决它? #### 资源 - 视频 - ⭐ 尚硅谷 - Nginx 教程由浅入深: (讲的比较全面) - ⭐ Nginx 鱼皮 - 手把手带你从0搭建个人网站: (简单演示 Nginx 部署网站) - 文档 - Nginx 中文文档: - 工具 - Nginx 配置在线生成: ### 🌗 Netty 网络编程(21 天) 开源的 Java 网络编程框架,用于开发高性能(事件驱动、异步非阻塞)、高可靠的网络服务器和客户端程序。 很多网络框架和服务器程序都用到了 Netty 作为底层,学好 Netty 不仅可以让我们自己实现高性能服务器,也能更好地理解其他的框架应用、阅读源码。 #### 知识 - IO 模型(BIO / NIO) - Channel - Buffer - Seletor - Netty 模型 - WebSocket 编程(动手做个聊天室) - 相关技术:Vertx(中文文档: ,比 Netty 简单多了,实在看不懂 Netty 也可以学习下这个) #### 学习建议 不同于之前学的 SSM 框架,Netty 还是需要一定学习成本的,一方面是国内资源太缺乏,另一方面很多重要的概念(比如 NIO)还是要多动手写代码调试才能理解。 还是建议先从视频入门,并且不建议在 Netty 上花太多时间,面试的时候一般也就考察一些 Netty 背后的思想(比如 NIO)而非框架本身的语法细节。 #### 经典面试题 1. Netty 有哪些优点? 2. 什么是 NIO? 3. 介绍 Netty 的零拷贝机制 #### 资源 - 视频 - ⭐ 尚硅谷Netty教程: - Netty 技术演讲(中文字幕版): - 文档 - Netty 4 用户指南: - 书籍 - 《Netty 实战》 ### 🌖 微服务(60 天) 随着互联网的发展,项目越来越复杂,单机且庞大的巨石项目已无法满足开发、运维、并发、可靠性等需求。 因此,后台架构不断演进,可以将庞大的项目拆分成一个个职责明确、功能独立的细小模块,模块可以部署在多台服务器上,相互配合协作,提供完整的系统能力。 换言之,想做大型项目,这块儿一定要好好学! #### 知识 ##### Dubbo - 架构演进 - RPC - Zookeeper - 服务提供者 - 服务消费者 - 项目搭建 - 相关技术:DubboX(对 Dubbo 的扩展) ##### 🌖 微服务 - 微服务概念 - Spring Cloud 框架 - 子父工程 - 服务注册与发现 - 注册中心 Eureka、Zookeeper、Consul - Ribbon 负载均衡 - Feign 服务调用 - Hystrix 服务限流、降级、熔断 - Resilience4j 服务容错 - Gateway(Zuul)微服务网关 - Config 分布式配置中心 - 分布式服务总线 - Sleuth + Zipkin 分布式链路追踪 - Spring Cloud Alibaba - Nacos 注册、配置中心 - OpenFeign 服务调用 - Sentinel 流控 - Seata 分布式事务 ##### 接口管理 - Swagger 接口文档 - Postman 接口测试 - 相关技术:YApi、ShowDoc #### 学习建议 时间不急的话,建议先从 Dubbo 学起,对分布式、RPC、微服务有些基本的了解,再去食用 Spring Cloud 全家桶会更香。学完 Spring Cloud 全家桶后,再去学 Spring Cloud Alibaba 就很简单了。 这部分内容的学习,原理 + 实践都很重要,也不要被各种高大上的词汇唬住了,都是上层(应用层)的东西,基本没有什么算法,跟着视频教程学,其实还是很好理解的。 分布式相关知识非常多,但这里不用刻意去背,先通过视频教程实战使用一些微服务框架,也能对其中的概念有基本的了解。 大厂面试的时候很少问 Spring Cloud 框架的细节,更多的是微服务以及各组件的一些思想,比如网关的好处、消息总线的好处等。 #### 经典面试题 1. 什么是微服务,有哪些优缺点? 2. 什么是注册中心,能解决什么问题? #### 资源 - 项目实战 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的 API 开放平台、在线判题系统都运用了微服务,推荐学习 - 视频 - ⭐️ 黑马 Spring Cloud 视频教程:(11 小时,非常凝练,适合快速入门) - ⭐️ 尚硅谷 Dubbo 教程: - 尚硅谷 SpringCloud(H版&alibaba)框架开发教程(微服务分布式架构): (把国外的 Spring Cloud 和国内的 Spring Cloud Alibaba 结合在一起对比着去讲,主流技术栈、知识点都讲到了,内容更全面) - 文档 - Apache Dubbo 官方文档: - Spring Cloud Alibaba 官方文档: - ⭐ Swagger 教学文档: (跟着快速开始直接用就好了) ### 🌖 容器(7 天) 将应用和环境进行封装,相互隔离、独立部署、便于移植,提高安全性、提高开发和维护效率。 便于实现微服务、持续集成和交付。 #### 知识 - 🌖 Docker - 容器概念 - 镜像 - 部署服务 - Dockerfile - Docker Compose - Docker Machine - Docker Swarm - 多阶段构建 - 🌘 K8S(Kubernetes) - K8S 架构 - 工作负载 - 资源类型 - Pod - Pod 生命周期 - Pod 安全策略 - K8S 组件 - K8S 对象 - 部署应用 - 服务 - Ingress - Kubectl 命令行 - 集群管理 - 相关技术:Apache Mesos、Mesosphere #### 学习建议 业务上云是趋势,但是对于开发同学来说,会用 Docker / K8S 部署项目和服务就行。实际工作中,企业一般都有现成的平台直接用,面试考察的也不多,不用花太多时间。 #### 经典面试题 1. 什么是容器? 2. 使用 Docker 有哪些好处? 3. 如何快速启动多个 Docker 节点? #### 资源 - 项目实战 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的在线判题项目运用了 Docker 解决实际问题,推荐学习 - 视频 - ⭐【狂神说】Docker 最新超详细版教程通俗易懂: - K8S 视频教程: - 书籍 - 《深入浅出 Docker》: - 文档 - Docker — 从入门到实践: - 菜鸟教程 Docker: - 国外 Docker 官方文档: - 网站 - Docker 中文社区: (强烈推荐,有很多 Docker 技术文章和学习笔记) - Docker Blog: (国外 Docker 技术博客) - 镜像源 - Docker Hub:[https://hub.docker.com](https://hub.docker.com/) - 腾讯软件源: - 阿里云 Docker 仓库: ### 🌗 CI / CD(3 天) 持续集成 / 持续交付,贯穿整个研发到项目上线的过程,提高效率。 大公司一般都有自己的 CI / CD 平台。 #### 知识 - 什么是 CI / CD - CI / CD 有什么好处 - 使用任一 CI / CD 平台 - 相关技术:Jenkins、GitLab、微信云托管 #### 学习建议 了解它是什么,并且实战使用任一 CI / CD 平台,感受它和传统开发运维到底有什么不同,就足够了。其实很简单,不要花太多时间。 真正要自己去搭建的时候,跟着官方文档来就行。 #### 资源 - 文档 - CICD 精讲:提升开发者体验: - 视频 - 尚硅谷 - Jenkins 持续集成工具教程: (实在要用到 Jenkins 再去学) - 文档 - Jenkins 官方文档: (有很多案例,要用的时候查一下就行了) - 实战平台 - ⭐ 微信云托管: (直播演示过,鱼皮后面会给大家出视频教程) - 前端托管 Webify: (鱼皮给大家出过视频教程的 ### 练手项目 学习完框架后,即可跟着鱼皮的原创项目教程系列边学边做项目。用项目驱动学习,更快地掌握后端必学技术,并直接写在简历上:[项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 。 - mall-learning: (学习教程,架构、业务、技术要点全方位解析) - miaosha: (秒杀系统设计与实现) - Mall: (包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现) - Spring-Cloud-Admin: (基于 Spring Cloud 微服务化开发平台,具有统一授权、认证的后台管理系统) - paascloud-master: (基于 spring cloud + vue + oAuth2.0,前后端分离商城系统) - mall-swarm: (一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch 等核心技术,同时提供了基于 Vue 的管理后台方便快速搭建系统) - SecKill: (基于 SpringBoot+Mybatis+Redis+RabbitMQ 秒杀系统) - jeecg-boot: (低代码开发平台) - PassJava-Platform: (一款面试刷题的 Spring Cloud 开源系统) ### 尾声 看到这里,相信你已经感叹:编程语言一辈子学不完了! 但是,不用担心,通过对这么多知识点的学习,相信你已经有了一定的积累,也不知不觉地锻炼了自主学习能力、资源检索能力、代码阅读能力、问题解决能力,之后的学习会越来越轻松。 接下来,可以试着用你学到的技术来解决实际的问题,自主从 0 开始做一些项目,保持编程手感。 ## 阶段 5:项目实战 ### 目标 综合所学技术从 0 到 1 开发和上线一个全面、有特色的、可以写进简历的个人项目。 ### 学习建议 其实在之前的框架学习视频中应该就做过几个项目了,但相对不够完整和体系化。 有想法的同学可以做任何自己想做的项目,推荐参加一些作品类竞赛,练手、拿奖、收获项目经历一举三得。 暂时没想法的朋友,建议先跟着专门带做项目的视频教程做 1 - 2 套 Java 完整项目,一定要从 0 到 1 自己手写! 有能力的朋友也可以试着用 GitHub 上的源码来学习啦~ 做一个完整的项目的确很不容易,建议大家根据自己的 **时间、兴趣** 选择 **较新的** 、 **有配套源码的** 教程,保持耐心。 如何选择编程学习资源,可以看下我的原创文章: 下面推荐一些优质的、较新的项目实战视频教程 + 50 套项目源码。 ### 视频教程 [编程导航知识星球](https://yuyuanweb.feishu.cn/wiki/VC1qwmX9diCBK3kidyec74vFnde) 内部分享: 1. ⭐️ 鱼皮全程直播带做的保姆级全栈项目,带现成的简历写法和面试题:[项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd)。 2. [项目训练营(寻爱网项目)](https://www.code-nav.cn/course/1806250609774997505):学习从立项到上线的完整做项目流程 + 优化思路 3. [从 0 到 1 开发用户中心]([https://www.code-nav.cn/course/1790943469757837313:保姆级前后端完整项目教程,适合刚学完框架的新手](https://www.code-nav.cn/course/1790943469757837313%EF%BC%9A%E4%BF%9D%E5%A7%86%E7%BA%A7%E5%89%8D%E5%90%8E%E7%AB%AF%E5%AE%8C%E6%95%B4%E9%A1%B9%E7%9B%AE%E6%95%99%E7%A8%8B%EF%BC%8C%E9%80%82%E5%90%88%E5%88%9A%E5%AD%A6%E5%AE%8C%E6%A1%86%E6%9E%B6%E7%9A%84%E6%96%B0%E6%89%8B) 4. [伙伴匹配系统](https://www.code-nav.cn/course/1790950013153095682):移动端网站,设计分布式和并发编程知识,适合已经做过一个小项目的同学练习 5. [Web 终端项目经验分享](https://www.code-nav.cn/essay/1808581806845460481):前后端技术选型 + 系统设计 + 源码解读 + 简历亮点全面分享 6. [面试刷题网站项目经验分享](https://www.code-nav.cn/essay/1808582645974695938):从 0 到 1 分享数万用户网站的创作过程和经验分享 7. [瑞吉外卖 - 外卖点餐系统](https://www.code-nav.cn/post/1808581581993017346):Java Spring Boot 入门级项目,适合刚学完框架的同学 8. [尚医通 - 在线预约挂号平台](https://www.code-nav.cn/post/1808581478360154114):业务功能完整的 Java Spring Cloud 微服务项目,适合刚学完微服务的同学 9. [硅谷课堂 - 在线学习平台](https://www.code-nav.cn/post/1808581015011196930):业务功能完整的 Java Spring Cloud 微服务项目,适合想学习第三方服务对接的同学 10. [黑马点评 - 类似大众点评的移动 APP](https://www.code-nav.cn/post/1808580989170089985):专门为学习 Redis 定制的单体项目,适合刚学完 Spring Boot、想系统学习 Redis 的同学 公开: - 尚硅谷 - 谷粒学院 - 微服务 + 全栈 - 在线教育实战项目: (全栈项目,前后端讲得都很全面) - 尚硅谷 - 尚筹网 - Java项目实战开发教程 - SSM 框架 + 微服务架构:(500 多集,包含完整的用户权限管理,功能丰富、讲得很细致全面) - 黑马 - 24 小时搞定 Java 毕设电商项目: - 黑马程序员 Java 项目《传智健康》,超完整的企业级医疗行业项目: - 黑马程序员 Java 项目《万信金融》企业级开发实战,互联网金融行业解决方案: - 黑马程序员 Java 项目 SaaS 移动办公完整版《iHRM 人力资源管理系统》,跨行业 SaaS 办公整合性解决方案: - 黑马程序员 Java 大型分布式微服务闪聚支付项目,Java 移动支付全生态系统: - 黑马程序员 Java 项目《好客租房》: ### 常用类库 ##### 工具 - Guava:谷歌开发的 Java 工具库( - Apache Commons:各类工具库,比如 commons-lang、commons-io、commons-collections 等( - Hutool:Java 工具集库( - Lombok:Java 增强库( - Apache HttpComponents Client:HTTP 客户端库( - OkHttp:适用于 JVM、Android 等平台的 Http 客户端( - Gson:谷歌的 JSON 处理库( - Jcommander:Java 命令行参数解析框架( - Apache PDFBox:PDF 操作库( - EasyExcel:阿里的 Excel 处理库( - Apache POI:表格文件处理库( ##### 测试 - JUnit:Java 测试框架( - Mockito:Java 单元测试 Mock 框架( - Selenium:浏览器自动化框架( - htmlunit:Java 模拟浏览器( - TestNG:Java 测试框架( - Jacoco:Java 代码覆盖度库( ##### 其他 - cglib:字节码生成库( - Arthas:Java 诊断工具( - config:针对 JVM 的配置库( - Quasar:Java 纤程库( - drools:Java 规则引擎( - Caffeine:Java 高性能缓存库( - Disruptor:高性能线程间消息传递库( - Knife4j:Swagger 文档增强( - Thumbnailator:Java 缩略图生成库( - Logback:Java 日志库( - Apache Camel:消息传输集成框架( - Quartz:定时任务调度库( - Apache Mahout:机器学习库( - Apache OpenNLP:NLP 工具库( - RxJava:JVM 反应式编程框架( - JProfiler:性能分析库( - jsoup:HTML 文档解析库( - webmagic:Java 爬虫框架( ### IDEA 插件 综合实用性、易用性、流行度、维护频率,精选了以下插件,简单分类为天地二品。 #### 精选地品插件 简单好用、增强功能 - Background Image Plus + - 描述:给编辑器设置背景图片(小姐姐图片) - 官网: - Chinese Language Pack - 描述:中文支持 - 官网: - Translation - 描述:翻译插件,鼠标选中文本,点击右键即可自动翻译成多国语言。 - 官网: - Key Promoter X - 描述:快捷键提示插件。当你执行鼠标操作时,如果该操作可被快捷键代替,会给出提示,帮助你自然形成使用快捷键的习惯,告别死记硬背。 - 官网: - Rainbow Brackets - 描述:给括号添加彩虹色,使开发者通过颜色区分括号嵌套层级,便于阅读 - 官网: - CodeGlance - 描述:在编辑器右侧生成代码小地图,可以拖拽小地图光标快速定位代码,阅读行数很多的代码文件时非常实用。 - 官网: - WakaTime - 描述:代码统计和跟踪插件 - 官网: - Statistic - 描述:代码统计 - 官网: #### 精选天品插件 提高开发效率和代码质量 - String Manipulation - 描述:字符串快捷处理 - 官网: - Tabnine AI Code Completion - 描述:使用 AI 去自动提示和补全代码,比 IDEA 自带的代码补全更加智能化 - 官网: - GsonFormatPlus - 描述:根据 json 生成对象 - 官网: - JUnitGenerator V2.0 - 描述:自动生成单元测试 - 官网: - RestfulTool - 描述:辅助 web 开发的工具集 - 官网: - SequenceDiagram - 描述:自动生成方法调用时序图 - 官网: - CheckStyle-IDEA - 描述:自动检查 Java 代码规范 - 官网: - Alibaba Java Coding Guidelines - 描述:代码规范检查插件 - 官网: - SonarLint - 描述:帮助你发现和修复代码的错误和漏洞 - 官网: - MybatisX - 描述:MyBatis 增强插件,支持自动生成 entity、mapper、service 等常用操作的代码,优化体验 - 官网: #### 美化类 - Extra Icons - 描述:图标美化插件,支持更多文件类型 - 官网: - Chinese Language Pack - 描述:中文支持 - 官网: - Grep Console - 描述:自定义设置控制台输出颜色 - 官网: - Material Theme UI - 描述:美观的主题 - 官网: - Nyan Progress Bar - 描述:进度条美化 - 官网: - activate-power-mode - 描述:打字特效 - 官网: - Power Mode II - 描述:打字特效插件升级版 - 官网: - Rainbow Brackets - 描述:给括号添加彩虹色,使开发者通过颜色区分括号嵌套层级,便于阅读 - 官网: - Background Image Plus + - 描述:给编辑器设置背景图片 - 官网: #### 代码生成类 - Codota AI Autocomplete for Java and JavaScript - 描述:使用 AI 去自动提示和补全代码,比 IDEA 自带的代码补全更加智能化 - 官网: - Tabnine AI Code Completion - 描述:使用 AI 来自动提示和补全代码,比 IDEA 自带的代码补全更加智能化 - 官网: - UUID Generator - 描述:生成随机的 UUID - 官网: - Randomness - 描述:生成随机值 - 官网: - .ignore - 描述:生成不同语言的版本控制忽略文件 - 官网: - Auto filling Java call arguments - 描述:通过快捷键自动补全函数的调用参数 - 官网: - GenerateAllSetter - 描述:快速生成调用对象 setter 方法的代码 - 官网: - GenerateSerialVersionUID - 描述:一键为实现 Serializable 接口的类生成 SerialVersionUID - 官网: - GsonFormatPlus - 描述:根据 json 生成对象 - 官网: - Lombok - 描述:配合 Lombok 依赖及注解使用,能够大大减少 Java 对象的代码量。IDEA 已自带,无需安装。 - 官网: - Easy Code - 描述:根据数据库表生成 Java entity、dao、mapper、service、controller 等代码 - 官网: - Easy Javadoc - 描述:快速生成 Javadoc 文档 - 官网: - JavaDoc - 描述:生成 Javadoc 文档 - 官网: - Json2Pojo - 描述:根据 JSON 生成 POJO,根据 POJO 生成 JSON - 官网: - JUnitGenerator V2.0 - 描述:自动生成单元测试 - 官网: - Jindent - Source Code Formatter - 描述:根据自定义模板来生成 javadoc 注释 - 官网: - MybatisX - 描述:MyBatis 增强插件,支持自动生成 entity、mapper、service 等常用操作的代码,优化体验 - 官网: - MyBatisCodeHelperPro - 描述:MyBatis 增强插件,支持自动生成 entity、mapper、service 等常用操作的代码(收费) - 官网: #### 功能提效类 ##### 源码阅读 - Call Graph - 描述:生成调用关系图,便于查看源码 - 官网: - Jump to Line - 描述:支持跳转到任意行进行调试 - 官网: - SequenceDiagram - 描述:自动生成方法调用时序图 - 官网: - jclasslib Bytecode Viewer - 描述:字节码查看器 - 官网: - BrowseWordAtCaret - 描述: 快速在相同单词间进行跳转 - 官网: - CodeGlance - 描述:在编辑器右侧生成代码小地图,可以拖拽小地图光标快速定位代码,阅读行数很多的代码文件时非常实用。 - 官网: ##### 代码规范 - CheckStyle-IDEA - 描述:自动检查 Java 代码规范 - 官网: - Alibaba Java Coding Guidelines - 描述:代码规范检查插件 - 官网: - SonarLint - 描述:帮助你发现和修复代码的错误和漏洞 - 官网: - FindBugs-IDEA - 描述:帮你找出代码中潜藏的 Bug - 官网: - MetricsReloaded - 描述:代码复杂度分析 - 官网: ##### 格式处理 - CamelCase - 描述:快速字符串格式转换工具,如驼峰式 - 官网: - Json Parser - 描述:验证和格式化 Json 字符串的工具 - 官网: - Properties to YAML Converter - 描述:把 Properties 文件的格式转为 YAML 格式 - 官网: - String Manipulation - 描述:字符串快捷处理 - 官网: ##### 代码统计 - WakaTime - 描述:代码统计和跟踪插件 - 官网: - Statistic - 描述:代码统计 - 官网: ##### 代码检索 - OnlineSearch - 描述:选择文本后支持不同搜索引擎进行搜索 - 官网: - CodeSearch - 描述:快捷地打开搜索引擎进行搜索 - 官网: ##### 其他 - Leetcode Editor - 描述:在 IDEA 里刷算法题 - 官网: - File Watchers - 描述:监听文件,当其发生变化时自动执行命令 - 官网: - PlantUML integration - 描述:UML 建模工具,只需简单的代码就能画出复杂的 UML 类图 - 官网: - Bytecode Editor - 描述:字节码编辑工具 - 官网: - Alibaba Cloud Toolkit - 描述:阿里云工具集 - 官网: - Tencent Cloud Toolkit - 描述:腾讯云工具集 - 官网: - EduTools - 描述:面向教育者,允许创建、分享和加入练习 - 官网: - IDE Features Trainer - 描述:IntelliJ IDEA 官方出的学习辅助插件 - 官网: - JRebel Plugin - 描述:项目热更新,提高效率(可惜要收费) - 官网: - Key Promoter X - 描述:快捷键提示插件。当你执行鼠标操作时,如果该操作可被快捷键代替,会给出提示,帮助你自然形成使用快捷键的习惯,告别死记硬背。 - 官网: - Translation - 描述:翻译插件,鼠标选中文本,点击右键即可自动翻译成多国语言。 - 官网: - idea_seat - 描述:自动提醒,防止你久坐不动 - 官网: - RestfulTool - 描述:辅助 web 开发的工具集 - 官网: - Multirun - 描述:同时启动多应用 - 官网: #### 扩展增强类 - Free Mybatis Plugin - 描述:MyBatis 增强插件,支持 mapper => xml 的跳转、代码生成等功能 - 官网: - MyBatis Log Plugin - 描述:MyBatis SQL 提取和格式化输出 - 官网: - Maven Helper - 描述:Maven 辅助插件 - 官网: - Gradle View - 描述:Gradle 项目管理工具的扩展 - 官网: - Arthas Idea - 描述: Arthas 命令生成插件。Arthas 是阿里开源的 Java 在线诊断工具,该插件可以自动生成 Arthas 在线 Java 代码诊断命令,不用再到官网翻文档拼命令啦! - 官网: - GitToolBox - 描述: Git 增强插件。在自带的 Git 功能之上,新增了查看 Git 状态、自动拉取代码、提交通知等功能。最好用的是可以查看到每一行代码的最近一次提交信息。 - 官网: - BashSupport - 描述:支持 Bash 脚本文件的高亮和提示等 - 官网: - Git Flow Integration - 描述:Git Flow 的图形界面操作 - 官网: - Gitee - 描述:开源中国的码云插件 - 官网: - Drools - 描述:规则引擎的扩展 - 官网: - EnvFile - 描述:对多环境配置文件的支持 - 官网: - Kubernetes - 描述:容器管理的扩展 - 官网: - Vue.js - 描述:Vue.js 前端框架的扩展 - 官网: - Scala - 描述:Scala 语言的扩展 - 官网: - Zookeeper - 描述:Zookeeper 中间件的扩展 - 官网: - Jms messenger - 描述:对 Java 消息服务的扩展 - 官网: - MapStruct Support - 描述:对 MapStruct 对象转换的支持 - 官网: - Big Data Tools - 描述:提供了 HDFS 等大数据框架的工具集 - 官网: - CSV - 描述:支持 CSV 文件的高亮和提示等 - 官网: - Ideolog - 描述:识别和格式化 log 日志文件 - 官网: - Toml - 描述:支持 toml 文件的高亮和提示等 - 官网: - .env files support - 描述:支持 .env 文件的高亮和提示等 - 官网: ### 常用软件 ##### 开发相关 - JetBrains IDEA:Java 集成开发环境,凭学生邮箱可申请免费使用( - Reset Jetbrains:你懂的 - Visual Studio Code:插件化代码编辑器( - Sublime Text:轻量代码编辑器( - Navicat:数据库管理软件( - JMeter:Java 性能测试工具( - JVisual VM:Java 运行状态可视化工具( - XShell:SSH 连接软件( - XFtp:FTP 连接软件( - Redis Desktop Manager:Redis 可视化管理工具( - Postman:接口测试工具( - VMware:虚拟机软件( - Chocolatey:Windows 软件包管理器( - Typora:写文档软件( ##### 效率 - Ditto:强大的剪切板( - uTools:插件化的效率工具( - XMind:思维导图软件( - Qdir:Windows 多窗口管理器( ### 项目源码(50 套) #### 鱼皮原创项目 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) - SQL 数据生成器(React + Java): - 结构化 SQL 语句生成器: - AI 自动回复工具(Java 项目): - 表情包网站(Vue + Java): #### 电商秒杀 - 天猫整站 J2EE: - 天猫整站 SSM: - 天猫整站 Springboot: - mall-learning: (学习教程,架构、业务、技术要点全方位解析) - SpringBoot 电商商城系统 Mall4j: - SpringBoot 完整电商系统 Mall: (包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现) - newbee-mall: (一套电商系统,包括 newbee-mall 商城系统及 newbee-mall-admin 商城后台管理系统,基于 Spring Boot 2.X 及相关技术栈开发) - paascloud-master: (基于 spring cloud + vue + oAuth2.0,前后端分离商城系统) - mall-swarm: (一套微服务商城系统,采用了 Spring Cloud Greenwich、Spring Boot 2、MyBatis、Docker、Elasticsearch 等核心技术,同时提供了基于 Vue 的管理后台方便快速搭建系统) - onemall: (mall 商城,基于微服务的思想,构建在 B2C 电商场景下的项目实战。核心技术栈,是 Spring Boot + Dubbo 。未来,会重构成 Spring Cloud Alibaba) - litemall: (又一个小商城,litemall = Spring Boot 后端 + Vue 管理员前端 + 微信小程序用户前端 + Vue 用户移动端) - xmall: (基于SOA架构的分布式电商购物商城 前后端分离 前台商城:Vue全家桶 后台管理系统) - miaosha: (秒杀系统设计与实现) - SecKill: (基于 SpringBoot+Mybatis+Redis+RabbitMQ 秒杀系统) #### 博客论坛 - [Mblog](https://github.com/langhsu/mblog):开源 Java 博客系统 - [halo](https://github.com/halo-dev/halo):一个优秀的开源博客发布应用 - [forum-java](https://github.com/Qbian61/forum-java):一款用 Java(spring boot) 实现的现代化社区(论坛/问答/BBS/社交网络/博客)系统平台 - [vhr](https://github.com/lenve/vhr):微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。 - [favorites-web](https://github.com/cloudfavorites/favorites-web):云收藏 Spring Boot 2.X 开源项目。云收藏是一个使用 Spring Boot 构建的开源网站,可以让用户在线随时随地收藏的一个网站,在网站上分类整理收藏的网站或者文章。 - [community](https://github.com/codedrinker/community):码问,开源论坛、问答系统,现有功能提问、回复、通知、最新、最热、消除零回复功能。技术栈 Spring、Spring Boot、MyBatis、MySQL/H2、Bootstrap - [NiterForum](https://github.com/yourkevin/NiterForum):尼特社区-NiterForum-一个论坛/社区程序。后端Springboot/MyBatis/Maven/MySQL,前端Thymeleaf/Layui。可供初学者,学习、交流使用。 - [VBlog](https://github.com/lenve/VBlog):V部落,Vue+SpringBoot实现的多用户博客管理平台! - [NiceFish](https://github.com/damoqiongqiu/NiceFish):SpringBoot/SpringCloud 前后端分离项目 - [My-Blog](https://github.com/ZHENFENG13/My-Blog): My Blog 是由 SpringBoot + Mybatis + Thymeleaf 等技术实现的 Java 博客系统,页面美观、功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验。 - [My-Blog-layui](https://github.com/ZHENFENG13/My-Blog-layui):layui 版本的 My-Blog : A simple & beautiful blogging system implemented with spring-boot & layui & thymeleaf & mybatis My Blog 是由 SpringBoot + Layui + Mybatis + Thymeleaf 等技术实现的 Java 博客系统,页面美观、功能齐全、部署简单及完善的代码,一定会给使用者无与伦比的体验 - [symphony](https://github.com/88250/symphony):Java 实现的现代化社区 #### 管理系统 - [Spring-Cloud-Admin](https://github.com/wxiaoqi/Spring-Cloud-Admin):Cloud-Admin 是国内首个基于 Spring Cloud 微服务化开发平台,具有统一授权、认证后台管理系统,其中包含具备用户管理、资源权限管理、网关 API 管理等多个模块,支持多业务系统并行开发,可以作为后端服务的开发脚手架。代码简洁,架构清晰,适合学习和直接项目中使用。核心技术采用 Spring Boot2 以及 Spring Cloud Gateway 相关核心组件,前端采用 vue-element-admin 组件。 - [bootshiro](https://github.com/tomsun28/bootshiro):基于 springboot+shiro+jwt 的资源无状态认证权限管理系统后端 - [悟空CRM](https://github.com/72crm/72crm-java):基于jfinal+vue+ElementUI的前后端分离CRM系统 - [EL-ADMIN](https://github.com/elunez/eladmin):基于 SpringBoot 的后台管理系统 - [pig](https://gitee.com/log4j/pig):基于 Spring Boot 2.2、 Spring Cloud Hoxton & Alibaba、 OAuth2 的 RBAC 权限管理系统。 - [FEBS-Shiro](https://github.com/wuyouzhuguli/FEBS-Shiro):Spring Boot 2.1.3,Shiro1.4.0 & Layui 2.5.4 权限管理系统。 - [Spring Boot-Shiro-Vue](https://github.com/Heeexy/SpringBoot-Shiro-Vue):基于Spring Boot-Shiro-Vue 的权限管理 - [studentmanager](https://github.com/ZeroWdd/studentmanager):基于springboot+mybatis学生管理系统 - [jshERP](https://github.com/jishenghua/jshERP):华夏ERP基于SpringBoot框架和SaaS模式,立志为中小企业提供开源好用的ERP软件,目前专注进销存+财务功能。主要模块有零售管理、采购管理、销售管理、仓库管理、财务管理、报表查询、系统管理等。支持预付款、收入支出、仓库调拨、组装拆卸、订单等特色功能。拥有库存状况、出入库统计等报表。同时对角色和权限进行了细致全面控制,精确到每个按钮和菜单。 - [HotelSystem](https://github.com/misterchaos/HotelSystem):酒店管理系统 Java,tomcat,mysql,servlet,jsp实现,没有使用任何框架 #### 开发平台 - [open-capacity-platform](https://github.com/2014shijina2014/open-capacity-platform):微服务能力开发平台 - [jeecg-boot](https://github.com/zhangdaiscott/jeecg-boot):JeecgBoot是一款基于BPM的低代码平台!前后端分离架构 SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT,支持微服务。强大的代码生成器让前后端代码一键生成,实现低代码开发! #### 其他 - [学之思在线考试系统](https://github.com/mindskip/xzs):一款 java + vue 的前后端分离的考试系统 - [PassJava-Platform](https://github.com/Jackson0714/PassJava-Platform):一款面试刷题的 Spring Cloud 开源系统 - [kkFileView](https://github.com/kekingcn/kkFileView):使用spring boot打造文件文档在线预览项目 - [dynamic-datasource](https://github.com/baomidou/dynamic-datasource-spring-boot-starter):一个基于springboot的快速集成多数据源的启动器 - [moti-cloud](https://github.com/373675032/moti-cloud):莫提网盘,基于 SpringBoot+MyBatis+ThymeLeaf+BootStrap,适合初学者 - [threadandjuc](https://github.com/qiurunze123/threadandjuc):three-high-import 高可用\高可靠\高性能,三高多线程导入系统(该项目意义为理论贯通) - [proxyee-down](https://github.com/proxyee-down-org/proxyee-down):http下载工具,基于http代理,支持多连接分块下载 - [hosp_order](https://github.com/sfturing/hosp_order):医院预约挂号系统,基于 SSM 框架 - [趋势投资 SpringCloud](https://how2j.cn/module/170.html) - [DiyTomcat](https://how2j.cn/module/176.html) ## 阶段 6:Java 高级 ### 目标 不满足于能做,而是通过更 **深入** 和 **广泛** 的学习,实现高质量的代码和更优秀的架构,培养解决问题的能力。 已经到了这个阶段,建议除了看完成的教程外,平时多自主搜索信息去学习,积少成多。比如遇到了一个不了解的名词,可以去网上搜一下,感兴趣的话再进行下一步的学习。 ### 🌖 并发编程(21 天) 对 Java 后端开发程序员来说,懂得如何利用有限的系统资源来提高系统的性能是很重要的,也是大厂面试考察的重点,因此并发编程(尤其是 Java 并发包的使用)这块的知识很重要。 把它放到高级,是因为在学并发编程前,需要有一定的编程经验、了解一定的操作系统知识。 #### 知识 - 线程和进程 - 线程状态 - 并行和并发 - 同步和异步 - Synchronized - Volatile 关键字 - Lock 锁 - 死锁 - 可重入锁 - 线程安全 - 线程池 - JUC 的使用 - AQS - Fork Join - CAS #### 学习建议 并发编程入门不难,依然是 **先学会使用** 基础的 Java 并发包, 再通过大量地实践和测试,了解一些原理,才能真正掌握何时使用、如何更合理地使用并发编程。而不是张口闭口多线程,上天入地高并发。 #### 经典面试题 1. volatile 关键字的作用 2. 使用线程池有哪些好处? 3. 线程池参数如何设置? 4. 什么是线程安全问题,如何解决? 5. 介绍 synchronized 的锁升级机制 6. CopyOnWriteArrayList 适用于哪种场景? #### 资源 - 项目实战 - [项目实战 - 鱼皮原创项目教程系列](https://yuyuanweb.feishu.cn/wiki/SePYwTc9tipQiCktw7Uc7kujnCd) 中的伙伴匹配系统、智能 BI 项目、OJ 判题系统都运用了并发编程解决实际问题,推荐学习 - 视频 - ⭐【尚硅谷】大厂必备技术之JUC并发编程2021最新版: (特点是短、精、新) - 黑马程序员全面深入学习Java并发编程: (讲的很细、全面深入) - 书籍 - ⭐《Java并发编程实战》(国外的经典) - ⭐《Java 并发编程艺术》(国人写的,理论思想内容较多,有时间建议反复看) - ⭐《图解 Java 多线程设计模式》: 提取码: 9gc7(如果已经学了 Java 并发编程,可以额外学习,这里的设计模式) - 项目 - ⭐ Java 并发知识点总结: ### 🌖 JVM(30 天) 想要深入理解 Java,探秘 Java 跨平台的奥秘,一定要了解 Java 底层的虚拟机技术。 了解虚拟机、掌握虚拟机性能调优方法,有助于你写出更高性能、资源占用更小的优质程序。 在学习 JVM 的过程中,也能学到很多精妙的设计,开拓思路。 #### 知识 - JVM 内存结构 - JVM 生命周期 - 主流虚拟机 - Java 代码执行流程 - 类加载 - 类加载器 - 类加载过程 - 双亲委派机制 - 垃圾回收 - 垃圾回收器 - 垃圾回收策略 - 垃圾回收算法 - StopTheWorld - 字节码 - 内存分配和回收 - JVM 性能调优 - 性能分析方法 - 常用工具 - 参数设置 - Java 探针 - 线上故障分析 #### 学习建议 JVM 的知识略显枯燥,建议先看视频,有实操的地方一定要实操!自己多去分析。 第一遍不理解没有关系,可以再看书来巩固,想要真正学好,《深入理解 Java 虚拟机(第三版)》一定要读。 如果只是为了通过面试可以直接看更精简的视频,比如狂神的。 #### 经典面试题 1. 介绍 JVM 的内存模型? 2. JVM 内存为什么要分代? 3. 介绍一次完整的 GC 流程 4. 介绍双亲委派模型,为什么需要它? #### 资源 - 视频 - ⭐ 尚硅谷宋红康 - JVM 全套教程详解: (讲得相当全面!附有实操) - 【狂神说Java】JVM快速入门篇: (讲得有点浅,但都是面试重点,时间紧的小伙伴可以直接看这个) - 书籍 - ⭐《深入理解 Java 虚拟机(第三版)》(有理论有实践,内容丰富,不可多得的 JVM 学习神书,就是有点废头发) - 项目 - ⭐ Java 虚拟机底层原理知识总结: - 实战 - 阿里云 JVM 实战: - 工具 - Arthas 开源 Java 诊断工具: ### 🌖 Java 高级知识 > 通过阅读文章了解即可 #### 知识 - 动态代理 - Java 探针 - 字节码,参考: - UnSafe 类 - 协程 / 纤程 ### 架构设计 #### 🌖 分布式 - 分布式理论 - CAP - BASE - 分布式缓存 - Redis - Memcached - Etcd - 一致性算法 - Raft - Paxos - 一致性哈希 - 分布式事务 - 解决方案 - 2PC - 3PC - TCC - 本地消息表 - MQ 事务消息 - 最大努力通知 - LCN 分布式事务框架: - 分布式 id 生成 - Leaf 分布式 id 生成服务: - 分布式任务调度 - XXL-JOB 调度平台: - elastic-job: - 分布式服务调用 - trpc - 分布式存储 - HDFS - Ceph - 分布式数据库 - TiDB - OceanBase - 分布式文件系统 - HDFS - 分布式协调 - Zookeeper - 分布式监控 - Prometheus - Zabbix - 分布式消息队列 - RabbitMQ - Kafka - Apache Pulsar - 分布式日志收集 - Elastic Stack - Loki - 分布式搜索引擎 - Elasticsearch - 分布式链路追踪 - Apache SkyWalking - 分布式配置中心 - Apollo - Nacos #### 🌗 高可用 - 限流 - 降级熔断 - 冷备 - 双机热备 - 同城双活 - 异地双活 - 异地多活 - 容灾备份 #### 🌗 高并发 - 数据库 - 分库分表 - MyCat 中间件 - Apache ShardingSphere 中间件 - 读写分离 - 缓存 - 缓存雪崩 - 缓存击穿 - 缓存穿透 - 负载均衡 - 负载均衡算法 - 软硬件负载均衡(2、3、4、7 层) #### 🌘 服务网格 服务网格用来描述组成应用程序的微服务网络以及它们之间的交互。服务网格的规模和复杂性不断的增长,它将会变得越来越难以理解和管理,常见的需求包括服务发现、负载均衡、故障恢复、度量和监控等。 ##### 知识 - Istio - 流量管理 - 安全性 - 可观测性 - Envoy(开源的边缘和服务代理) ##### 资源 - 资料大全: - istio 官方文档: - istio 视频教程: - 在线体验 istio: #### 🌘 DDD 领域驱动设计 将数据、业务流程抽象成容易理解的领域模型,通过用代码实现领域模型,来组成完整的业务系统。 ##### 知识 - DDD 的优势 - DDD 的适用场景 - DDD 核心概念 - 领域模型分类:失血、贫血、充血、涨血 - 子域划分:核心域、通用域、支撑域 - 限界上下文 - 实体和值对象 - 聚合设计 - 领域事件 - DDD 实践 ##### 资源 - DDD 入门: - DDD 编码实践: - DDD 实践教程: #### 🌘 其他 - Sidecar - Serverless - 云原生 #### 学习建议 架构设计的学习没有顶点,多看文章,思考每种设计的优缺点和适用场景,有机会的话在企业中实践即可。 还在学校、或者初入这行的同学切记,千万不要一味地去背诵架构设计的八股文。你可以背,但是这一块的知识只有结合具体的项目才有意义,所以要多做项目去实践设计的合理性,而不是什么设计都咔咔往系统里去怼。比如面试问到分布式事务,能结合自己项目中用分布式事务解决问题的经验去回答最好。 ### 🌘 其他技术 - 热数据探测技术:京东 HotKey - 数据库流水订阅:阿里 Canal - 监控告警 - 应用安全 - 故障演练 - 流量回放 ## 阶段 7:Java 求职 ### 目标 找到好工作 ### 建议 1. 尽早做规划,可以通过大厂招聘官网的岗位描述来了解岗位的要求 2. 雕琢一份优秀的简历,推荐阅读: 3. 多读面经,坚持刷算法 4. 多参与面试,持续复盘总结 ### 资源 #### 校招岗位 - 阿里 Java 开发: - 腾讯后台开发: - 腾讯全栈开发: - 腾讯运营开发: - 美团后端开发: - 华为软件开发: #### 社招岗位 - 阿里社招: - 腾讯社招: #### 实习 - 实习僧: #### 鱼皮经历 - 从 0 开始的编程学习进大厂经历 - ⭐ 我学计算机的四年,共勉: - 实习经历 - ⭐ 我的第一份实习: - ⭐ 我的第二份实习,字节跳动: #### 知识总结 - ⭐ JavaGuide: - ⭐ CS-Notes: - 阿里 Java 技术图谱: #### 面经 编程导航面经汇总: #### 面试题解 编程导航精选面试题汇总: #### 视频 - ⭐ 尚硅谷 2021 逆袭版 Java 面试题第三季: - ⭐ 阿里大佬透彻讲解 Java 面试 500 道必考题: ## 阶段 8:持续学习 ### 目标 持续追求技术的深度和广度,培养自己的 **核心竞争力** 和 **不可替代性** ,学无止境! ### 学习建议 自主学习,自主搜索教程,多看书,多阅读技术博客,多实践。 ### 学习方向 #### 框架源码 - Spring - SpringBoot - SpringMVC - MyBatis - Netty - Dubbo - SpringCloud #### 计算机原理 - 《算法导论》: - 《现代操作系统》: - 《深入理解计算机系统》: - 《编译原理》: - 《计算机网络:自顶向下方法》: - 《计算机程序的构造和解释》: - 《数据库系统概论》: #### 数据库 / 中间件 / 分布式 - 数据库 - MySQL - PostgreSQL - 缓存 - Redis - 队列 - Apache Kafka - Apache Pulsar - 搜索引擎 - Elastic Stack - Elasticsearch - logstash - kibana - beats - 容器 - Docker - K8S #### 解决方案 - 广告系统 - 电商系统 - 搜索系统 - 支付转账 - 游戏后台 - 即时通讯 - 社交系统 - CMS 系统 - ERP 系统 - OA 系统 - 代码生成 - 权限管理 - 秒杀活动 #### 架构设计 同阶段 6 架构设计部分 #### 大数据 - 5V 特点 - Hadoop - HDFS - MapReduce - Spark - Flink - Storm - Hive - HBase - Druid - Kylin - Pig - Mahout #### 前沿技术 - 云原生: - Quasar Framework: - 服务网格: - istio: - GraalVM: (高性能的通用虚拟机) - 官网: - ZGC: (新一代垃圾回收器) - 官网: ### 自学 Java 专题资源 - ⭐ GitHub Java 专区: - ⭐ GitHub Java 合集: - StackOverflow: (解决问题必备) - ⭐ 掘金 Java 专区: - 美团技术团队: - 阿里技术团队: - 有赞技术团队:[[https://tech.youzan.com/tag/back-end/](](https://tech.youzan.com/tag/back-end/%5D() --- ⬅️ [[06-案例练习工程|06-案例练习工程]] 🏠 [[00-鱼皮学习路线|鱼皮学习路线]] ➡️ [[01-Java 简介|Java 简介]]