高考结束,已经有同学开始在知乎的私信里咨询我大一的 Java 学习路线了,我天呐,这觉悟,这么早就开始卷了吗?
趁热打铁,二哥就来给需要的同学准备一份新鲜出炉的 Java 学习路线图吧,送给有缘人。
第一部分:Java 基础篇
这个阶段就是编程入门,掌握 Java 这门编程语言的基本语法,为后面的修行之路打好基础。
包括的知识点有:
- 环境搭建——Intellij IDEA 一站式搞定
- Java 基础语法
- 面向对象——封装、继承、多态
- 数组
- 字符串
- 集合框架
- IO
- 反射
- 注解
- 网络编程
- 并发编程
这方面的资源我给大家梳理下:
1)针对 Intellij IDEA,GitHub 上有一份简体中文版教程,可以点击下面的链接去看一下。
https://github.com/judasn/IntelliJ-IDEA-Tutorial
2)针对 Java 基础知识总览,我这有一份 GitHub 上星标 115k+ 的教程,我亲自整理的,包括 Java 基础、Java 容器、Java 并发、Java 虚拟机和 Java IO,可以说非常全面,但却只说重点。
GitHub 星标 115k+的 Java 教程,超级硬核!mp.weixin.qq.com
Java 基础语法+Java 集合框架
Java 并发编程
Java 虚拟机+Java IO
同学们可以通过这份教程先过一遍,初学者可能有些内容不太懂,没关系的,看不懂的就先跳过,这里只是说一个学习资料,一个大纲,对 Java 的全貌有一个大致的印象,方便后面查漏补缺。
并发编程是其中一块难点,所以我在这给大家整理了另外一份牛逼的学习资料,几位阿里大佬写的,名叫《重学 Java 并发编程》,非常强:沉默王二:GitHub 疯传,阿里工程师编写的 《深入浅出 Java 多线程》开源了!
并发编程涉及的知识点我用下面的思维导图汇总下。
如果你想看书的话,我推荐两本,一本《Java 核心技术卷》,一本《Head First Java》。
《Java 核心技术卷》分为上下两册,上册的难度较低,可以在最短时间内刷完,尤其是有了 C语言的编程基础后,再刷这本书可以说是手到擒来。下册涉及到的内容有流与文件(☆)、XML、网络(☆)、数据库编程、国际化、Swing、AWT、JavaBean、安全(☆)、脚本编译和注解处理、分布式对象、本地方法(☆),没有标星的内容我认为可以略过。
《Head First Java》更有趣一些,里面有很多小游戏,很活泼的一本书。
两本书之间的风格差别比较大,之前就有读者给我反馈说,《Head First Java》有点驾驭不了,那就挑《Java 核心技术卷》。刷完任意一本书后,可以看一看《Java 编程思想》,看自己是否能驾驭得了,驾驭不了也没关系,后面再看,不着急的。
视频的话,可以看一下浙江大学教授翁恺老师的。在浙大,每年最受关注的内容之一就是永平奖的百万大奖会花落谁家。2018 年,获得永平杰出教学贡献奖的人,就是翁恺教授。
在 B 站上就可以看:
https://www.bilibili.com/video/BV1DJ411B7cG?p=3
这么一套组合拳下来,Java 的核心知识基本上可以说是吃的透透的!为以后学习其他方面的内容打下了坚实的基础。
第二部分,数据库
学习一门编程语言,如果不去操作下数据,就感觉这门编程语言空有皮囊却没有灵魂,对吧?要想学好数据,首先要学习一下 SQL,推荐《SQL 必知必会》,然后是 MySQL,推荐《高性能 MySQL》。再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,推荐《Redis 深度历险:核心原理与应用实战》。还有 MongoDB,非关系型数据库,推荐《MongoDB权威指南》。
视频的话,B 站上推荐 3 个。
SQL:一个老外的视频课(中字版),内容制作得非常棒,所以完全不用担心听不懂。
MySQL:一个女老师讲的,弹幕很精彩:MySQL_基础+高级篇- 数据库 -sql -mysql教程_mysql视频_mysql入门_尚硅谷_哔哩哔哩_bilibili
Redis:【狂神说Java】Redis最新超详细版教程通俗易懂_哔哩哔哩_bilibili
第三部分:框架
大部分 Java 程序员都要从事 JavaWeb 的相关开发工作,要开发 JavaWeb,自然就离不开 Spring 的系列框架。甚至可以这么说,没有 Spring 的 Java 项目是不存在的。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。
- Spring
- Spring MVC
- MyBatis
- Spring Boot
- Spring Cloud
单视频的话,推荐:尚硅谷-Spring5框架最新版教程(idea版)_哔哩哔哩_bilibili
学完 Spring,就要学 SpringMVC,推荐大家看视频,江南一点雨的,在 B 站上虽然播放量不是特别大,但我觉得内容特别棒。
然后是 MyBatis,不用找书看了,直接看 官方文档 就行,讲得特别好。本身 MyBatis 也没有特别难的东西,就是一些 XML 配置和动态 SQL。
Spring+SpringMVC+MyBatis 这三个框架学完,可以说你就具备了开发企业级应用的能力了。至于 Spring Boot,我推荐看纯洁的微笑的博客,访问量在千万级别以上,影响了无数的初学者,我个人强烈推荐。
最后是 Spring Cloud,是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。
视频: 【狂神说Java】SpringCloud最新教程IDEA版_哔哩哔哩_bilibili
第四部分:练手项目
到底是不是一个好的 Java 练手项目,关键的因素在这个项目的文档是否全面!这个因素我认为是最重要的,GitHub 和码云上有成千上万的项目,真正能脱颖而出的不在这个项目有多牛逼,作者的技术有多厉害,而在于这个项目的文档能不能让大家看得懂!
我不给大家推荐太多,多的话,就乱,不知道该从哪个开始。
1)电商秒杀
SpringBoot 完整电商系统 Mall:包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。
miaosha:秒杀系统设计与实现。
2)博客论坛
vhr:微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。
halo([ˈheɪloʊ],意为光环,也可以当成拼音读(哈喽)):一个优秀的开源博客发布应用。
这些项目都非常适合作为练手项目。像 vhr,我是贡献者之一,目前有 20k star。
后端技术栈
- Spring Boot
- Spring Security
- MyBatis
- MySQL
- Redis
- RabbitMQ
- Spring Cache
- WebSocket ...
前端技术栈
- Vue
- ElementUI
- axios
- vue-router
- Vuex
- WebSocket
- vue-cli4 ...
基本上主流的前后端技术都用到了。松哥为初学者还特意录了项目的部署视频教程,在 B 站上,很贴心。
mall 的话,也非常牛逼,有 47k 的 star。
我之前做的一个电商项目还用了 mall 作为基层的架构!mall 的学习教程更全面,宏哥直接做了一个在线的网站,基本上用的技术都讲述得特别明白!
第五部分:简历+算法+面试
到这一步,基本上理论知识也有了,经验也有了,剩下三件事:
- 准备简历
- 刷算法题
- 刷面试题
一份好的简历太重要了,它是你拍醒招聘方的一块强有力的板砖!怎么才能写好简历呢?可以参照我这篇文章,有家长就觉得很不错,转发给了他的孩子。
无论什么时候,程序=数据结构+算法这种说法都是成立的。Java 中的线性数据结构有数组、链表、栈、队列,非线性数据结构有树、哈希表、图等等。常见的排序算法有:选择排序、冒泡排序、插入排序、快速排序、归并排序、希尔排序、基数排序、计数排序、桶排序、堆排序等等。常见的查找算法有:顺序查找、二分查找、插值查找、斐波那契查找、树表查找等等。常见的算法有:KMP算法、贪心算法、回溯算法、动态规划、递归算法等等。
这里给大家推荐一份纯 Java 版的 LeetCode 刷题笔记吧。作者曾给我说,刷完 100 道题之后,发现真的是爱上了刷题。基本上后面的每道题都可以想出一种思路,甚至就是最优解,还会萌生一些别人没想到过的解法——基本上只要算法学得好,大厂小厂的 offer 基本上就 70% 的把握了!
刷完 300 道 LeetCode 题后,我飘了!mp.weixin.qq.com
一定要要在找工作前多刷一刷算法题和面试题,让自己有更多的选择,去一家相对成熟的公司,一家给你更多试错机会的公司,一家发展前景更好的公司。我这里有一份 GitHub 上星标 100K+ 的 Java 面试攻略,应该能帮得上忙,让大家在准备的时候都有章可循。
有需要Java面试资料 文档的小伙伴可以加v:XIaonan00000621领取