不要再走弯路了,最全的Java学习路线在这(内含13张思维导图)

大家好,我是朋哥。

最近耗费了一周时间整理了一套Java学习路线,

对于初次接触 Java 的朋友,想必一定很迷茫,想知道如何掌握好 Java 这门技术,如何运用Java进行项目开发,以及给自己带来高的收益!
复制代码

曾经的我,也一度迷茫,虽然学了很多,但是技术积累的比较散,在面试的时候,一碰到面试官提一些自己没听说过的问题,瞬间就傻逼了,而且时常不够自信,但是自从认识了一些大牛之后,我才发现自己欠缺的是系统性的知识,以及对自己未来的定位。从那时候起,渐渐的开始思考 Java 为什么至今依然这么火,怎么学好 Java 这门技术,以及自己未来的方向。

在这里,可以将Java开发涉及到的技术栈知识学习分为以下几个部分:

image.png

一,Java 核心技术篇

这个阶段就是Java入门阶段,也是核心阶段,掌握 Java 这门编程语言的基本语法,和基本特征,核心api和编码规范,安全规范等,为后面的修行之路打好基础。一定要注意是基础,基础一定要牢固。

image.png

1,基础知识 又包括如下知识点:

image.png

2,容器知识

容器主要是数据集合类,主要包括以下几个,也是Java开发最常用的数据结构:

ArrayList、LinkedList、HashMap、LinkedHashMap、HashTable、HashSet,Vector,CopyOnWriteArrayList,ConcurrentHashMap,WeakHashMap等,如果过需要分析原理的小伙伴可以去java.util包下进行查找,开发中使用很广。

image.png

3,IO知识

实现文件或者网络的输入/输出操作,主要包括如下内容:

  1. File类的作用
  2. File类中常用方法的使用介绍
  3. 使用File类操作文件和文件夹
  4. 相对路径和绝对路径的介绍
  5. IO流的概念和工作原理
  6. IO流的分类
  7. 文件流的使用
  8. 转换流的使用
  9. 缓冲流的使用
  10. 对象流的使用
  11. 内存流的使用
  12. 使用不同的流实现文件内容的拷贝

image.png

4,多线程知识

主要包含线程和进程的基本概念、使用、以及并发编程等内容,多线程中有一个重点是线程池,用来管理线程,多线程可以说是 Java 高性能的核心基石,对大用户量高并发有很好的处理优势,必须要掌握好多线程的知识点。

简单归类主要包括如下几点

image.png

5,JVM虚拟机

说到虚拟机,很多大厂尤其会面试这方面的知识点,很多工作几年的开发者都没有实质的接触到,核心知识点主要是GC调优,详细可以分为如下几点:

image.png

二、设计模式

设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。

从模式上,可以将其分为四大类:创建型模式、结构型模式、行为型模式,J2EE 设计模式 ,合计各个类别总共有 23 种!

image.png

三、Java 开源框架

Java 程序员从事 JavaWeb 的相关开发当然离不开 Spring 的系列框架。

就目前来说 没有 一个项目 不包含Spring 。Spring 框架正在变得越来越庞大,但核心的概念仍然是 IOC 和 AOP,也就是控制反转和面向切面编程。这个两个概念对于初学者来说,学习曲线有点陡峭。

有关Spring的核心框架:

image.png

开源框架的出现,对整个IT行业来说,尤其是程序员,真的绝对是一种福利!

比如新手上手难、项目开发周期长、编码风格不统一等问题,Spring、SpringMVC、Mybtais、Hibernate等框架的出现,极大的改善了web应用程序后端开发的难度,缩短了开发周期,对于后端开发者而言,真的是一种解放!

image.png

四、数据库篇

学习一门编程语言,数据库操作是必不可少的,不学会数据库,这门编程语言你也只能算是懂得一点点皮毛而已,对吧?要想学好数据库,首先要学习一下 SQL,推荐《SQL 必知必会》,然后是 MySQL,推荐《高性能 MySQL》。再拓展的话,还有 Redis,互联网技术领域中使用最广泛的存储中间件,推荐《Redis 深度历险:核心原理与应用实战》。

还有 MongoDB,非关系型数据库,推荐《MongoDB权威指南》。

根据使用用途,数据库可分为关系型数据库、非关系型数据库。

  • 关系型数据库:主要就是我们做业务时经常会接触到的一种数据库,在设计时主要需要遵循三范式要求,以设计符合实际需要的表结构关系。
  • 非关系型数据库:主要是面向那些不能用结构化关系表达的数据,通过k-v来实现存储。

image.png

这里强烈推荐几本书:
  • SQL基础教程(入门级);
  • 高性能MySQL(进阶级);
  • Redis入门指南(第2版)
  • Redis设计与实现
  • Redis实战

五、前端技术篇

真正在实际开发过程中,对于后端开发者而言,不可能只做 Java 的开发,也要兼顾前端的开发,有一些公司连前端开发都没有,前端任务全部都由后端人员来兼顾完成。

另外现在前后端分离开发也都是一个人来完成了,vue、react、angluar等前端框架,都需要学习。

开发人员必须掌握 Html、JavaScript技术,原因就不多说了。

这里推荐几个网站如下:

1、Bootstrap

Bootstrap无疑是最流行的CSS框架,它是最早的Web前端框架,由Twitter开发。Bootstrap还提供了许多实例来帮助你入门。

2、PatternFly

PatternFly是Red Hat的开源CSS框架,和Bootstrap不同的是,Bootstrap是为那些想要创建漂亮网站的人而设计的,而PatternFly主要专注于企业应用程序开发人员,提供诸如条形图、图表、导航之类的组件,实际上Red Hat就是使用它创建了OpenShift。

3、Material Components for the web

Material Components for the web(MDC Web),是谷歌专为Web设计的全新前端框架。MDC Web可帮助开发人员执行Material Design,组件由谷歌的核心工程师团队和UX设计人员开发。这些组件可以建立可靠的开发工作流程,以构建美观且功能强大的Web项目。

4、Pure

Bootstrap,Patternfly和MDC Web是功能非常强大的CSS框架,但它们可能非常繁琐和复杂。如果你想要一个轻量级的CSS框架,可以尝试Pure.css,它本身更接近于CSS编程,但又可以帮助你构建一个不错的网页。Pure是具有最小占用空间的轻量级CSS框架,它由Yahoo开发,根据BSD许可是开源的。

5、Foundation

Foundation声称是世界上最先进的响应式前端框架。它提供了用于构建专业网站的高级功能和教程。许多公司,组织都使用该框架,并且该框架具有大量可用的文档。

6、Bulma

Bulma是一个基于Flexbox的开源框架,可根据MIT许可证开源。Bulma是一个非常轻量级的框架,因为它只需要一个CSS文件。Bulma拥有简洁明了的文档,可轻松选择你想要的主题。它还具有许多Web组件,你可以在设计中使用它们。

7、Skeleton

如果说还有什么框架比Pure更加轻量级,那一定是Skeleton。Skeleton库只有大约400行,并且该框架仅提供一些基本的CSS框架组件。尽管如此,Skeleton还是提供了详细的文档来帮助你快速上手。

8、Materialize

Materialize 是一个基于 Material Design风格的一个现代化的响应式前端框架,解决了最繁重的工作,结合你的自定义组件,为你提供默认的样式。Materialize的文档页面非常全面,并且很容易遵循。其组件页面包括按钮,卡片,导航等。

9、Bootflat

Bootflat是从Twitter的Bootstrap派生的开源CSS框架。与Bootstrap相比,Bootflat更简单,并且更加轻量级。Bootflat的文档似乎几乎受到了IKEA的启发,大部分都是图像,没有太多的文字。

10,w3school(网站)

在 W3School,你可以找到你所需要的所有的网站建设教程。

从基础的 HTML 到 CSS,乃至进阶的 XML、SQL、JS、PHP 和 ASP.NET。

六、中间件篇

问:什么情况下需要使用中间件呢?

答:如果面对一个请求量很大、对响应要求很高的系统,就需要中间件的支持。

问:中间件包括那些呢?

答:最常用的有:分布式缓存:redis、memcached,分布式消息队列:activemq 、rabbitmq、rocketmq、kafka,分布式搜索引擎:elasticsearch,分布式任务调度:quartz,分布式API网关:zuul,分布式熔断器:Hystrix 等等。

image.png

七、服务器篇

服务器 重点主要是软件安装部署、服务器使用原理,容器化技术等,最为Java程序员不会部署服务器绝对不是好技术员。

image.png

最后:

推荐几个Java 练手项目,超鸡棒。

GitHub 和码云上有成千上万的项目,真正能脱颖而出的不在这个项目有多牛逼,作者的技术有多厉害,而在于这个项目的文档能不能让大家看得懂!能不能让大家学习到这些知识点。

这里只给大家推荐2个个人认为比较好的,相信还有很多我不知道的好的,大家也多多挖掘。

1)电商秒杀

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

github.com/macrozheng/…

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

github.com/qiurunze123…

2)博客论坛

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

github.com/lenve/vhr

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

github.com/halo-dev/ha…

觉得不错的小伙伴,记得帮我@程序员漫话编程,点个赞和关注哟,笔芯笔芯~**

来源:「程序员漫话编程」 作者:朋哥

附程序员必备小册,小册版权归作者所有,地址:   Gitee:鸿蒙开发源码仓库 Gitee:在线课程(开源项目) Gitee: 大厂面试资料和实战项目

Github: 在线课程(开源项目) Github: 大厂面试资料和实战项目

猜你喜欢

转载自juejin.im/post/7035246994129944606