史上最强 Java 学习路线图!_java自学路线图(超全超详细)-程序员宅基地

技术标签: spring  算法  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 教程!


大家可以通过这份教程先过一遍。

并发编程是其中一块难点,所以我在这给大家整理了另外一份牛逼的学习资料,几位阿里大佬写的,名叫《重学 Java 并发编程》,非常强!

以后面试再也不怕被问Java并发编程了,多亏了这本PDF电子书

所涉及的知识点我用下面的思维导图汇总下。

书的话,我推荐两本,一本《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:一个老外的视频课(中字版啦),内容制作得非常棒,所以完全不用担心听不懂。

https://www.bilibili.com/video/BV1UE41147KC

MySQL:一个女老师讲的,弹幕很精彩。

https://www.bilibili.com/video/BV12b411K7Zu

Redis:

https://www.bilibili.com/video/BV1S54y1R7SB

第三部分:框架

大部分 Java 程序员都要从事 JavaWeb 的相关开发工作,要开发 JavaWeb,自然就离不开 Spring 的系列框架。甚至可以这么说,没有 Spring 的 Java 项目是不存在的。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。这个两个概念对于初学者来说,学习曲线有点陡峭。

目前流行的内容主要是:

  • Spring
  • Spring MVC
  • MyBatis
  • Spring Boot
  • Spring Cloud

要学习 Spring,能读的书不多,我能想到的只有《Spring实战》,坦白地说,这本书很一般,但市面上比它好的书,我还不知道。

单视频的话,推荐:

https://www.bilibili.com/video/BV1Vf4y127N5/?spm_id_from=333.788.videocard.7

学完 Spring,就要学 SpringMVC,推荐大家看视频,江南一点雨的,在 B 站上虽然播放量不是特别大,但我觉得内容特别棒——毕竟好兄弟!视频地址我贴一下。

https://www.bilibili.com/video/BV1qp4y1n7D1

然后是 MyBatis,不用找书看了,直接看官方文档就行,讲得特别好。本身 MyBatis 也没有特别难的东西,就是一些 XML 配置和动态 SQL。

https://mybatis.org/mybatis-3/zh/index.html

Spring+SpringMVC+MyBatis 这三个框架学完,可以说你就具备了开发企业级应用的能力了。至于 Spring Boot,我推荐看纯洁的微笑的博客,访问量在千万级别以上,影响了无数的初学者,我个人强烈推荐。

http://www.ityouknow.com/spring-boot.html

视频的话,也有。

https://www.bilibili.com/video/BV1PE411i7CV

最后是 Spring Cloud,是一系列框架的有序集合。它利用 Spring Boot 的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot 的开发风格做到一键启动和部署。

博客的话,推荐纯洁的微笑。

http://www.ityouknow.com/spring-cloud.html

视频:

https://www.bilibili.com/video/BV1jJ411S7xr

第四部分:练手项目

到底是不是一个好的 Java 练手项目,关键的因素在这个项目的文档是否全面!这个因素我认为是最重要的,GitHub 和码云上有成千上万的项目,真正能脱颖而出的不在这个项目有多牛逼,作者的技术有多厉害,而在于这个项目的文档能不能让大家看得懂!

我不给大家推荐太多,多的话,就乱,不知道该从哪个开始。

1)电商秒杀

SpringBoot 完整电商系统 Mall:包括前台商城系统及后台管理系统,基于 SpringBoot+MyBatis 实现。

https://github.com/macrozheng/mall

miaosha:秒杀系统设计与实现。

https://github.com/qiurunze123/miaosha

2)博客论坛

vhr:微人事是一个前后端分离的人力资源管理系统,项目采用 SpringBoot+Vue 开发。

https://github.com/lenve/vhr

halo([ˈheɪloʊ],意为光环,也可以当成拼音读(哈喽)):一个优秀的开源博客发布应用。

https://github.com/halo-dev/halo

这些项目都非常适合作为练手项目。像 vhr,我是贡献者之一,目前有 20k star。


后端技术栈

Spring Boot
Spring Security
MyBatis
MySQL
Redis
RabbitMQ
Spring Cache
WebSocket

前端技术栈

Vue
ElementUI
axios
vue-router
Vuex
WebSocket
vue-cli4

基本上主流的前后端技术都用到了。松哥为初学者还特意录了项目的部署视频教程,很贴心,有木有~

mall 的话,也非常牛逼,有 47k 的 star。

我之前做的一个电商项目还用了 mall 作为基层的架构!mall 的学习教程更全面,宏哥直接做了一个在线的网站,基本上用的技术都讲述得特别明白!

第五部分:简历+算法+面试

到这一步,基本上理论知识也有了,经验也有了,剩下三件事:

  • 准备简历
  • 刷算法题
  • 刷面试题

一份好的简历太重要了,它是你拍醒招聘方的一块强有力的板砖!怎么才能写好简历呢?可以参照我这篇文章,有家长就觉得很不错,转发给了他的孩子。

教你编写一份脱颖而出的简历,从而 offer 手到擒来,要参加校招的同学要提前准备了

无论什么时候,程序=数据结构+算法这种说法都是成立的。Java 中的线性数据结构有数组、链表、栈、队列,非线性数据结构有树、哈希表、图等等。常见的排序算法有:选择排序、冒泡排序、插入排序、快速排序、归并排序、希尔排序、基数排序、计数排序、桶排序、堆排序等等。常见的查找算法有:顺序查找、二分查找、插值查找、斐波那契查找、树表查找等等。常见的算法有:KMP算法、贪心算法、回溯算法、动态规划、递归算法等等。

这里给大家推荐一份纯 Java 版的 LeetCode 刷题笔记吧。作者曾给我说,刷完 100 道题之后,发现真的是爱上了刷题。基本上后面的每道题都可以想出一种思路,甚至就是最优解,还会萌生一些别人没想到过的解法——基本上只要算法学得好,大厂小厂的 offer 基本上就 70% 的把握了!

刷完 300 道 LeetCode 题后,我膨胀到要飘起来了!纯正 Java 版

一定要要在找工作前多刷一刷算法题和面试题,让自己有更多的选择,去一家相对成熟的公司,一家给你更多试错机会的公司,一家发展前景更好的公司。我这里有一份 GitHub 上星标 100K+ 的 Java 面试攻略,应该能帮得上忙,让大家在准备的时候都有章可循。

V4.0 《JavaGuide 面试突击版》来啦!GitHub 上标星 98.1k,帮你成功上岸!

这个学习路线图是真的强,各位学弟学妹们看到的话,一定要收藏, 毕竟等于学会呀!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qing_gee/article/details/116018232

智能推荐

基于Arduino的foc控制1——开环速度控制——有事随缘更新中_arduino foc-程序员宅基地

文章浏览阅读348次。【代码】Arduino编写foc控制。_arduino foc

android移动开发软件安装,android studio 开发的安卓软件怎么安装到手机上-程序员宅基地

文章浏览阅读4.3k次,点赞4次,收藏16次。android studio 开发中如何让运用运行在真机中。大体实现方式有3种:分别是:真机通过usb插到电脑上进行开发。android studio 上面编写程序进行编译apk版本,通过其他助手或者adb命令推送到手机中运行。通过wifi连接android studio把编写好的程序运行到真机上。【原理】让运用运行到真机中,需要usb数据线,安装android sdk,一个手机,所有的方案都是通..._android studio怎么样让app出现在手机傻瓜

Mybatis Plus的@TableId标签_mybatisplus tableid-程序员宅基地

文章浏览阅读1.1w次,点赞7次,收藏21次。这个注释主要用于对应数据库表的实体类中的主键属性。写法:@TableId(value=“数据库主键字段”,type = IdType.六种类型之一)例如:@TableId(value=“user_id”,type = IdType.AUTO )IdType的六种类型类型解释AUTO数据库自增IDNONE数据库未设置主键类型(将会跟随全局)INPUT用户输入ID(该类型可以通过自己注册自动填充插件进行填充)ID_WORKER默认的全局唯一ID (idWor_mybatisplus tableid

JavaScript中的map()和sort()方法_js map sort-程序员宅基地

文章浏览阅读2.1k次。JavaScript中的map()和sort()方法_js map sort

小目标检测文章阅读_小目标检测模型-程序员宅基地

文章浏览阅读1.4k次。无人机上目标检测的特点:1、图像特点 在多数情况下,无人机的拍摄视野很大,包含丰富的视觉内容,虽然它提供了更全面的场景信息。缺点: 1)但是待检测的目标对象通常在图像中占比较小,且没有足够的检测细节; 2)目标的外观和结构质量都很差,容易与噪声混淆(大视场、小目标引起); 学术论文,主要内容为遥感图像飞机检测。 难点:由于遥感图像的成像时段以及环境条件不一,可见光遥感平台的分辨率、相机F数、飞行高度、视角等参量各有不同,待检测的飞机目标型_小目标检测模型

iOS 动态改变cell的高度_ios开发-动态增加或者删除cell并自动增加变化高度-程序员宅基地

文章浏览阅读975次。#import "ViewController.h" @interface ViewController (){ UITableView *_table; NSMutableArray *_dataList; UIView *footView;}@end @implementation ViewController - (void)_ios开发-动态增加或者删除cell并自动增加变化高度

随便推点

常见的文件格式有哪些_常见文件格式类型-程序员宅基地

文章浏览阅读9.3k次,点赞14次,收藏36次。AAAC:MPGE-4高级音频编码ACC:苹果设备的专属音乐格式ACE:Ace压缩档案格式ACT:Microsoft office助手文件AIF,AIFF:音频互交换文件,Silicon Graphic and Macintosh应用程序的声音格式ANI:Windows系统中的动画光标APK:AndroidPackage /Android(安卓)安装包,APK是类似Symbian Sis或Sisx的文件格式。通过将APK文件直接传到Android模拟器或Android手机中执行即可安装APS_常见文件格式类型

大数据之Hadoop图解概述-程序员宅基地

文章浏览阅读2w次,点赞72次,收藏263次。文章目录1 Hadoop是什么2 Hadoop 发展历史(了解)3 Hadoop 三大发行版本(了解)3.1 Apache Hadoop(常用)3.2 Cloudera Hadoop3.3 Hortonworks Hadoop4 Hadoop 优势(4 高)5 Hadoop 组成(面试重点)5.1 HDFS 架构概述5.2 YARN 架构概述5.3 MapReduce 架构概述5.4 HDFS、YARN、MapReduce 三者关系6 大数据技术生态体系7 推荐系统框架图1 Hadoop是什么1)Had_hadoop

sts(myeclipse)引入外部项目后无法启动项目_下载了sts工具后,我其他项目运行不了是什么原因啊?-程序员宅基地

文章浏览阅读2.1k次。 今天遇到一个问题,在使用dubbo服务调用多个注册中心的方法时一直启动不了项目,报错日志无限刷其中引用了两个dubbo注册中心,报错本以为是因为引用的错误,最终排查发现只有项目引入不能直接使用其中的接口还需要在Deployment Assembly中引入该项目为jar包才行..._下载了sts工具后,我其他项目运行不了是什么原因啊?

【Resnet最强变体】ResNeSt学习笔记 --- ResNeSt: Split-Attention Networks_变体resnest-程序员宅基地

文章浏览阅读1w次,点赞4次,收藏76次。代码:https://github.com/zhanghang1989/ResNeSt论文:https://hangzhang.org/files/resnest.pdf尽管图像分类模型最近不断发展,但是由于其简单而模块化的结构,大多数下游应用程序(例如目标检测和语义分割)仍将ResNet变体用作backbone。ResNeSt展示了一个简单的模块:Split-Attention,该块可实现跨..._变体resnest

html让spry菜单栏居中,Float 菜单水平居中简单方法-程序员宅基地

文章浏览阅读937次。body{font-family:Verdana,Arial,sans-serif;font-size:12px;margin:120px auto;text-align:center;}ul{margin:0;padding:0;list-style:none;}#navigation{display:inline-block;padding:20px;border:solid 1px red;..._怎么让spry导航条居中

使用react-pdf预览pdf_react pdf预览-程序员宅基地

文章浏览阅读4.3k次。在使用构建的react项目中如何实现预览??如果PDF中包含印章该如何使印章展示出来???我项目中使用的版本为5.2.0。4. 显示印章客户在浏览器中使用开源PDF.JS插件预览签署后的PDF文件时会遇到无法显示电子签章的情况,这是因为PDF.JS因无法进行校验电子签名故而默认隐藏了电子签章。如果需要显示电子签章则需要在中找到以下代码并进行注释或者某些版本的PDF.JS需要在pdf.worker.js中找到如下代码并进行注释最后看下效果图......_react pdf预览