java学习路线 Java学习路线

Java 学习路线一条龙!

大纲:

路线特点:

1.最新,完整一条龙,从入门到入土(⭐ 表示推荐学习)

2.给出目标、学习建议、关键知识点、最优资源以及各类资源推荐(视频、书籍、文档、项目、工具等)

3.划分阶段、更有计划,且在最后给出持续学习的方向、探索 Java 程序员发展的无限可能

符号表:

可以通过路线知识点前的表情字符,根据自己的实际情况选择学习:

1.🌕 所有同学必须学习!!!
2.🌖 非常急着找工作,才可不学;目标大厂,必须学习!
3.🌗 急着找工作的话,可不学;目标大厂,建议学习
4.🌘 时间充足的话,再去学
5.⭐ 表示推荐资源

写在开头:

1.首先呢,我们要了解 Java 的应用场景和就业方向,看看和自己的学习目的是否一致。

2.目前,Java 由于其优秀的特性以及火爆的生态,岗位需求量大,是后台开发、安卓开发、大数据开发的主流编程语言,因此学习资源也很丰富,值得学习!

3.有关更多编程语言的选择,大家可以看鱼皮的视频了解:https://www.bilibili.com/video/BV1y3411r7pX/

阶段 0:前期准备:

1.准备好一款在线、随时随地写代码的工具,不用在本地去安装和配置,是初学者的好帮手 推荐网站
菜鸟工具:https://c.runoob.com/compile/10
2.准备一款记笔记的软件,学编程的过程中老师的思路、自己遇到的问题、解决问题的方法、
心得感悟、遇到的好资料,都要记下来哦,好记性不如烂笔头,可以帮助你事半功倍。
推荐软件 Typora:https://www.typora.io/ 推荐使用 Markdown 语法编写,教程:https://www.bilibili.com/video/BV1no4y1k7YT/

3.想学好编程,别背代码,要多写,把这句话刻到脑子里。

4.选视频和找资料的小技巧:多看评论区、多看隔壁评论区,不要看过期的视频。

5.如何访问 GitHub:https://mp.weixin.qq.com/s/uBFsuThsZ4kdkZgqfX12qA (上面有很多免费的编程学习资源、项目源码,程序员必备)

阶段 1:Java 入门

目标:

培养兴趣、快速上手 ,能运行和编写简单的 Java 程序。

学完本阶段后,可以试着用 Java 解决一些数学计算问题、编写图书管理系统等桌面端 GUI 程序,甚至是五子棋之类的小游戏。

Java 编程基础(45 天):

**级别:**🌕

知识
1.Java 特点(看不懂没事,别背!)

2.环境搭建

3.IDEA 开发工具:
新建项目
运行调试
界面配置
插件管理
Java 基础语法
1.数据类型
2.流程控制
3.数组
面向对象
1.方法
2.重载
3.封装
4.继承
5.多态
6.抽象类
7.接口
8.枚举
9.常用类
10.String
11.日期时间
12.集合类
13.泛型
14.注解
15.异常处理
16.多线程
17.IO 流
18.反射
学习建议
初学一门语言时,一定要持续学习,不能中断!

想要学好编程,一定要多敲代码!建议先跟着书上的例子敲一遍代码,然后试着自主编写代码,并完成课后练习。

不理解代码也没关系,可以学习 Debug 后,一行一行地打断点执行,查看程序的执行过程。千万不要觉得麻烦,养成习惯后真的能节省很多重复学习的时间。

经典面试题
1.为什么重写 equals 还要重写 hashcode?
2.== 和 equals 比较的区别
3.为啥有时会出现 4.0 - 3.6 = 0.40000001 这种现象?
4.final 关键字的作用
5.介绍 Java 的集合类
6.ArrayList 和 LinkedList 的区别
资源
视频: ⭐ 韩顺平 - 零基础 30 天学会 Java:https://www.bilibili.com/video/BV1fh411y7R8 (900 多集,顺序安排很合理,每个知识真正的打碎了,通俗、有示例、有实战、有思想)

文档: ⭐ 菜鸟教程:https://www.runoob.com/java/java-tutorial.html (可以在线练习)

廖雪峰 Java 教程:https://www.liaoxuefeng.com/wiki/1252599548343744

IDEA 中文教程:https://github.com/judasn/IntelliJ-IDEA-Tutorial

IDEA Mac 快捷键指南,地址:https://www.jianshu.com/p/454c71172c46

IDEA Win 常用快捷键,地址:https://www.jianshu.com/p/5de7cca0fefc

书籍: 《Head First Java》

在线游戏: Codegym:https://codegym.cc/zh (玩玩前几关培养兴趣不错,但后面收费了)

Java 8(3 天):

**等级:**🌖

知识
1.Stream API
2.Lambda 表达式
3.新日期时间 API
4.接口默认方法

学习建议

Java 8 是如今企业开发中最主流的 Java 稳定版本,在这个版本出现了很多实用的新特性,虽然面试考点不多,但能够提升编程效率,建议学习。

经典面试题
1.java 8 有哪些新特性?
2.HashMap 在 jdk 1.7 和 1.8 的区别?

资源
视频:
⭐ 宋红康 - 全网最全Java零基础入门教程:https://www.bilibili.com/video/BV1Kb411W75N ( 只看 Java 8 部分即可)

文档:
⭐ 菜鸟教程:https://www.runoob.com/java/java8-new-features.html

书籍:
《Java 8 实战》
工具:
⭐ 在线编写运行 Java 8:https://www.tutorialspoint.com/compile_java8_online.php
项目:
Java 8 小代码片段:https://github.com/biezhi/30-seconds-of-java8

练手项目:

1.Java 实现简单计算器:https://www.lanqiao.cn/courses/185

2.Eclipse 实现 Java 编辑器:https://www.lanqiao.cn/courses/287

3.一本糊涂账:https://how2j.cn/module/104.html

4.Java 五子棋:https://blog.csdn.net/cnlht/article/details/8176130

5.Java 中国象棋:https://blog.csdn.net/cnlht/article/details/8205733

6.JAVA GUI 图书馆管理系统:https://github.com/uboger/LibraryManager

7.JAVA 坦克大战小游戏:https://github.com/wangzhengyi/TankWar

8.Swing 编写的俄罗斯方块:https://github.com/HelloClyde/Tetris-Swing

9.小小记账本:https://github.com/xenv/SmallAccount (适合了解数据库的同学)

尾声:

学完了 Java 基础后,有些同学会感到迷茫了啊,感觉好像啥也做不出来,不知道下一步做什么,我这一身的本领该如何施展啊?

不要慌,也不要急着去学新技术,接下来我们要多用 Java 来写代码了,巩固基础,但是写什么呢?

当然是数据结构和算法!

阶段 2:巩固基础

目标

想学好编程,计算机基础知识要学好。

比如算法,是程序员的灵魂。学好算法有助于我们理解程序、开拓思路,因此也是很多公司面试时考察的关键,在找工作前,还是要刷个上百道算法题目的。

我们这个阶段的目标是:熟练使用 Java 语言来编写程序,巩固 Java 基础。(那直接用 Java 来写算法题目,一举两得,岂不美哉?)

此外,建议大家利用零碎时间多去了解 计算机基础知识 ,比如操作系统、计算机网络等,对你后面学习开发框架之类的知识都有帮助。

Java 基础(30 天)

学习建议
建议大家去阅读 《Java 核心技术卷 1》,这本书堪称经典,是帮助你复习巩固 Java 的不二之选,其中图形界面章节可以选择不看。
之后可以刷牛客的 Java 练习题,检验自己的水平,我当时刷了两遍 1000 题(每天 30 题,1 个月也就刷完了,二刷会更快!)。虽然都是选择题,但能学到很多 Java 语言的特性、避免写代码时容易犯的错误。

如果你时间不够,只是想快速找到工作,那么本章节甚至可以完全跳过,后面慢慢弥补即可。
资源
书籍 :
⭐《Java 核心技术卷 1》
练习 :
⭐ 牛客题库:https://www.nowcoder.com/intelligentTest ###

数据结构与算法

等级 🌖

知识
时间 / 空间复杂度分析(重点)

数据结构:
1.数组
2.字符串
3.队列
4.栈
5.链表
6.集合
7.哈希表
8.二叉树

算法:
1.排序
2.双指针
3.查找
4.分治
5.动态规划
6.递归
7.回溯
8.贪心
9.位运算
10.DFS
11.BFS
12.图

学习建议
学算法一定要多思考、多练习!!! 在复习 Java、巩固基础的过程中,每天可以坚持用 Java 做 2 - 3 道算法题目。

不用担心看不懂,直接进入 LeetCode 学习板块 LeetBook,提供了免费的教程,文字、图解、动画讲算法、在线练习应有尽有,从 0 开始,跟着学习基础知识、跟着教程刷一些同类题目,培养算法思路。

之后再由简单到复杂、由通过率高到低,自主刷题,多看题解,举一反三。 一定要把自己做过的每道题目代码都自行保存好,定期复习。时间足够的话,也可以试着自己写写题解,在网上分享一下自己的刷题思路,找到自己坚持的动力。

有条件的朋友也可以试着参与竞赛,没什么门槛,可以帮助你集中精神,而且周赛的题目还是挺友好的~

经典面试题
LeetCode 精选 100 道:https://leetcode-cn.com/problem-list/2cktkvj/

LeetCode 精选算法 200 题:https://leetcode-cn.com/problem-list/qg88wci/
资源
文章
⭐ 刷了 1000 多道算法题,一点心得:https://t.1yb.co/oT9q (鱼皮原创)
在线教程
⭐ LeetCode LeetBook:https://leetcode-cn.com/leetbook/
在线刷题
⭐ LeetCode:https://leetcode-cn.com/
书籍
⭐《小灰的漫画算法》
⭐《剑指 Offer》
《程序员代码面试指南》
图解算法数据结构:https://leetcode-cn.com/leetbook/detail/illustration-of-algorithm/
LeetCode 101(C++):https://github.com/changgyhub/leetcode_101
LeetCode 题解(C++):https://github.com/soulmachine/leetcode LeetCode
Cookbook(Go 语言):https://github.com/halfrost/LeetCode-Go

视频

尚硅谷 Java 数据结构与算法:https://www.bilibili.com/video/BV1E4411H73v (难度比面试的要求大一些,适合希望更全面学习的朋友)
Leetcode 真题解析:https://www.bilibili.com/video/BV1a54y1b74k

工具
VisuAlgo 数据结构和算法动态可视化:https://visualgo.net/zh
数据结构可视化:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
RegExr:https://www.code-nav.cn/rd/?rid=79550af2601114e9012110711798772b (学习、创建和测试正则表达式的在线可视化工具)
网站
五分钟学算法:https://www.cxyxiaowu.com/

计算机导论

等级 🌘

知识

1.计算机发展历史
2.计算机应用领域
3.计算机发展方向
4.计算机基本组成
5.二进制
6.编程语言发展

学习建议
大学计算机专业的同学一般刚开学就会上这门课,虽说学习它并不会直接提高你的编程技能,但能够让你更了解计算机和编程,从而在一定程度上帮助你培养学习兴趣、确定学习方向。

自学的话,不用刻意去学习计算机导论,而是可以通过看视频、阅读课外读物的方式慢慢地了解计算机的故事。

资源

视频
《计算机科学速成课》:https://www.bilibili.com/video/BV1EW411u7th (从底层到上层的计算机知识科普,强烈推荐)
书籍
《半小时漫画计算机》

操作系统

等级 🌖

知识

1.操作系统的组成
2.进程、线程
3.进程 / 线程间通讯方式
4.进程调度算法
5.进程 / 线程同步方式
6.进程 / 线程状态
7.死锁
8.内存管理
9.局部性原理

学习建议
说实话,操作系统这一块知识挺枯燥的。你说说我现在项目都不会做,你又让我看这些理论,是不是想让我头秃?

我的建议是,可以先利用课余时间看一些网课或者有趣的课外书,对一些操作系统的概念先有个大致的印象,比如进程、线程、死锁,等后面有时间了再系统学习、等到找工作了再去背相关八股文。

还在校园就跟着学校的进度学习就成,自学的话可以看下《清华操作系统原理》视频,有实力的小伙伴,能看懂大黑书就更好了,但如果看不懂也别担心,这并不影响你后续知识的学习。

经典面试题
1.什么是死锁?死锁产生的条件?
2.线程有哪几种状态?
3.有哪些进程调度算法?
4.什么是缓冲区溢出?
资源

视频:
《清华操作系统原理》:https://www.bilibili.com/video/BV1uW411f72n
书籍:

《编码》
《30天自制操作系统》
《现代操作系统》(难度较大,不推荐新手看)
《深入理解计算机系统》(难度较大,不推荐新手看)
《 自己动手写操作系统》(国产好书,网上可以下载)

大学课件:

浙大操作系统:https://github.com/QSCTech/zju-icicles

计算机网络

等级 🌖

知识

1.网络分层模型
2.网络传输过程
3.IP、端口
4.HTTP / HTTPS 协议
5.UDP / TCP 协议
6.ARP 地址解析协议
7.网络安全
8.DNS 域名解析

学习建议
很多学习 Java 开发的同学最后都是从事 后端开发 的工作,而计算机网络知识是后端开发的重点。

和操作系统一样,自学网络可能会很枯燥,建议先看有趣的课外书,比如《图解 HTTP》;或者有趣的视频,比如《计算机网络微课堂》。后面要找工作面试前,再重点去背一些八股文就好了。还在学校的同学好好上课一般就没问题。

学习基础能帮助自己今后发展更稳定,且更容易接受新知识,所以请不要相信基础无用论。

经典面试题
1.计算机网络各层有哪些协议?
2.TCP 和 UDP 协议的区别?
3.TCP 为什么需要三次握手和四次挥手?
4.HTTP 和 HTTPS 协议的区别?
资源

视频:
《计算机网络微课堂》:https://www.bilibili.com/video/BV1c4411d7jb
书籍

⭐《图解 HTTP》
《网络是怎样连接的》
⭐《图解 TCP / IP》
大学课件

浙大计算机网络基础:https://github.com/QSCTech/zju-icicles

尾声

巩固基础要花至少 1 个月的时间,当你读完《Java 核心技术卷1》并且不用查询文档也能熟练地用 Java 做题时,就可以接着往下了。

阶段 3:Java 企业开发基础

目标

面向薪资编程,学习实际工作要用的技术,并能 **独立** 做出一个具有完整功能的 Java Web 项目。

学完这个阶段后,你应该已经能独立开发出大多数常见的后台系统了,比如各种管理系统、商城系统等。

MySQL 数据库(7 天)

企业中大部分业务数据都是用关系型数据库存储的,因此数据库是后台开发同学的必备技能,

其中 MySQL 数据库是目前的主流,也是面试时的重点。
**等级:**🌕

知识
1.基本概念
2.MySQL 搭建
3.SQL 语句编写
4.约束
5.索引
6.事务
7.设计数据库表
8.性能优化

学习建议
其中,SQL 语句编写设计数据库表 这两个能力一定要有!

比如让你做一个学生管理系统,你要能想到需要哪些表,比如学生表、班级表;每个表需要哪些字段、字段类型。

这就要求大家多写 SQL、多根据实际的业务场景去练习设计能力。

经典面试
1.MySQL 索引的最左原则
2.InnoDB 和 MyIsam 引擎的区别?
3.有哪些优化数据库性能的方法?
4.如何定位慢查询?
5.MySQL 支持行锁还是表锁?分别有哪些优缺点?

资源
视频:
1.⭐ 老杜 - mysql入门基础 + 数据库实战:https://www.bilibili.com/video/BV1Vy4y1z7EX ( 较新、内容相对精炼,有习题)
2.尚硅谷 - MySQL基础教程:https://www.bilibili.com/video/BV1xW411u7ax (小姐姐讲课,但感觉音质一般)

在线练习:
1.⭐ SQL 自学网:http://xuesql.cn/
2.⭐ SQL 在线运行&

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值