Java后端学习路线图,你真的只须要这一张!

微信公众号【程序员江湖】前端

做者黄小斜,斜杠青年,某985硕士,阿里研发工程师,于2018 年秋招拿到 BAT 头条、网易、滴滴等 8 个大厂 offerlinux

我的擅长领域 :自学编程、技术校园招聘、软件工程考研(关注公众号后回复”资料“便可领取 3T 免费技术学习资源)程序员


Java后端学习路线图,你真的只须要这一张!(做者:陆小凤;文章来源:程序员江湖)web

前言

学习路线图每每是学习同样技术的入门指南。网上搜到的Java学习路线图也是一抓一大把。面试

今天我只选一张图,仅此一图,足以包罗Java后端技术的知识点。所谓不求最好,但求最全,学习Java后端的同窗彻底能够参考这张图进行学习路线安排。算法

固然,有一些知识点是可选的,并非说上面有的你都要会啦。我在复习秋招的过程当中就是基于此图进行复习的,感受效果仍是不错的。sql

闲言少叙,咱们仍是看看这张图上都包含哪些有价值的信息吧。再次说明,本文只对路线图作一个简单地解读,仅供参考。你们能够根据自身状况来指定合理的学习计划,相信也会大有裨益。docker

1 计算机基础

这部份内容是计算机相关专业同窗的课程,可是非科班的小伙伴(譬如在下)就须要花时间恶补了。特别是计算机网络,操做系统,数据结构这三门课程。shell

至于编译原理,我的大概懂一点就好了,我也只看过简单的概念和状态机相关的内容,并非特别重要。数据库

2 Java编程

这里的Java编程部分包含了不少内容。咱们能够分别看看,大概概括一下就是这几个部分。

Java基础

这里的Java基础包括基本语法,集合类框架,以及一些高级特性,好比反射,注解等等。

Java基础的知识点很是多,因此要真正搞懂也没有那么简单,另外,随着时间推移,一些新特性也须要获得咱们的重视,好比时下流行的JDK8。

设计模式

我一直以为设计模式能够和Java基础一块学,因此我也把它放在这里。固然,一些真正使用到设计模式的地方,譬如JDK的集合类,IO流等等,也须要你足够重视。

Java Web技术

Java Web技术包括J2EE,以及web框架,乃至一系列经常使用的组件。

1 J2EE主要包括的就是servlet,jsp这些比较复古的web开发组件了。虽然如今直接用它们的状况比较少,可是咱们仍是须要花一些时间去掌握它们的。

2 web框架经常使用的就是Spring了,相应的,hibernate和mybatis也须要了解一下。

3 同时,JavaWeb开发时的经常使用类库,好比jnuit单元测试,log4j日志工具,以及构建工具maven,都属于咱们要掌握的范畴。

4 最后,要注意的是,Web相关的一些基本知识,好比HTTP协议,网络安全基础,也是咱们要考虑的部分。

Java并发技术

Java的并发技术泛指Java的多线程技术,以及JUC包里的并发类,好比线程池,并发工具类,阻塞队列等等。

Java并发技术彻底能够独立出来学习,是Java进阶知识的一大重点。

Java网络编程和服务器

这一块内容是Java中比较复杂但也很重要的一块内容。好比BIO,NIO,AIO的一些使用和原理,以及tomcat这类web服务器,甚至是netty这种网络编程框架,都是能够去了解和学习的内容。

Jvm基础与调优

JVM是提供Java程序运行的一个进程,学习JVM知识,也是咱们的必经之路。除了看懂《深刻理解jvm虚拟机》之外,咱们还要学习的内容就是JVM调优,使用合适的工具诊断问题,最后解决问题。

这部份内容在面试中呈现的不只仅是GC,内存分区,以及类加载器,也包括了我所说的JVM调优问题。

3 Linux

做为后台同窗,常年被面试官问linux相关的问题,因此以为学好linux仍是蛮重要的,除了基本命令之外,最好还能了解一些shell脚本,甚至是内核相关的知识,这方面是个人一个弱项。

4 数据相关

在这个路线图里,数据部分囊括了很是多的数据源,咱们能够来看看都有哪些是咱们须要掌握的。

关系数据库Mysql

这个没必要多说,人手都要会,不论是基础的crud,索引,抑或是进阶的存储引擎,分布式方案等,咱们都须要对应掌握。

缓存

如Redis,memcache一类的缓存,做为后端开发者的咱们也须要对应掌握,固然,它们的高级特性,以及分布式方案,也是必备的知识点。

搜索引擎

基于Lucene的solr,elasticsearch这类搜索引擎,本质上也是数据源,可是并非后端必备的内容,不过学一学也没有坏处啦。

大数据

海量数据处理的场景愈来愈多,大数据技术如hadoop,storm等也愈来愈火,可是大数据应用通常会由专业的大数据工程师来作,因此咱们学一些基本内容也就足够了。

5 算法和数据结构

算法一直是校招同窗面前的一座大山,做为后端同窗来说,除了基本的数据结构算法之外,也要会一些高级的算法,譬如dp,搜索,贪心等等。

另外,经过LeetCode等题库来刷题的方式来巩固算法也是公认的好办法了。

6 分布式

最后一个部分,也是内容最多,覆盖面最普遍的部分了。分布式相关的技术实在太多了,咱们这里也会作一下简单的概括。

web架构

先了解web架构的发展会对分布式的学习有更好的理解,毕竟架构的发展也对应着分布式技术的发展。

分布式理论

这部份内容包括分布式的发展演化,base理论和cap理论等等,学习分布式技术以前,最好能对这部分概念有必定了解。

一致性问题

强一致性的解决方案:事务和锁,弱一致性的方案:消息队列。

分布式session

一个常见的问题,也有多种解决方案

分布式缓存

和上面说的缓存同样,只不过这里侧重缓存的分布式方案

分布式数据库

这里指的数据库的分布式方案,也包括hbase这种分布式数据库。

负载均衡

负载均衡也是一个值得探讨的话题,通常咱们讨论的是七层和四层负载均衡。

消息队列

消息队列是一个比较复杂的分布式组件,咱们能够了解经常使用消息队列好比amq,kafka等的实现。

服务化

服务化的核心包括rpc,服务注册中心等等。分布式服务相关技术也是后端同窗必须掌握的内容。

虚拟化

虚拟化一样不是后端同窗必须掌握的内容,只不过如今愈来愈多的服务部署方式使用的是docker和云服务的方式。因此了解一下也没有什么很差的。

微信公众号【程序员江湖】

一个专一于程序员修炼和成长的平台,这里有技术指南、求职攻略,也有职场经验、生活感悟,更有自我提高的方法、对成长的思考等内容。做者是一枚阿里程序员,天天和你一块儿聊聊,程序员练级之路上的那些事。

【程序员江湖】里有什么?

一、天天分享一篇程序员干货文章,包括但不限于技术干货、求职攻略、学习方法、成长经验、生活感悟等方面的内容。

二、公众号后台回复“加群”便可加入咱们的程序员专属微信群(目前有程序员江湖大群、Java等方向的技术交流群、春招实习交流群等)

三、公众号后台回复“资料”便可得到3T海量学习资料,资料涵盖各个技术方向,包括Java、C++、前端、大数据、移动开发等方向。每一个方向都包含了基础、进阶、求职等部份内容。

相关文章
相关标签/搜索