Java小白到架构师学习路线【2.0版】

前言

学习真的是一个循序渐进的过程,也是一件需要坚持的事情。对于这篇文章,不同阶段的人可能有不同的理解,所以我花了几天的时间整理了一套学习路线提供给大家,以供参考。下面的这个学习路线适合刚刚学习了Java还没有深入、或者是想进一步提高的同学

我大概把学习流程分了三个阶段。

第一阶段:基础阶段

基础阶段我主要分为了四大块内容:

一、数据结构与算法

1、简单的数据结构

(1)基础概念

(2)数组

(3)链表

(4)队列

(5)栈

2、树

(1)平衡二叉树

(2)最优二叉树(哈夫曼树)

(3)红黑树

(4)B、B+、B*树

(5)LSM树

3、图

(1)图的基础知识

(2)图的遍历(两种)

(2)最小生成树 (Prim 算法 和 Kruskal 算法)

(3)最短路径算法 (Dijkstra(迪杰斯特拉)算法和Floyd(弗洛伊德)算法)

(4)拓扑排序

4、排序算法(掌握基本实现和变形实现)

(1)选择排序

(2)冒泡排序

(3)插入排序

(4)快速排序

(5)归并排序

(6)希尔排序

(7)堆排序

(8)基数排序

(9)桶排序

(10)排序算法比较分析

5、java中排序工具

(1)数组排序

(2)集合工具类排序

6、常见算法

(1)字符串比较KMP算法

(2)剪枝算法

(3)布隆过滤器

(4)回溯算法

建议:对于数据结构,要掌握使用JAVA语言去描述数据结构和常见的算法操作。

二、java基础

1、java集合

(1)总体框架

(2)collection架构

(3)List系列(ArrayList、fail-fast原理、LinkedList、Vector、Stack)

(4)Map系列(HashMap、HashTable、TreeMap、WeakHashMap、LinkHashMap)

(5)set系列(HashSet、TreeSet)

(6)Interator和Enumeration

(7)集合的使用场景和对比分析

2、常用类

(1)基础类型封装类

(2)BeanUtil工具类

(3)string系列类

(4)java各种关键字(transient、final、static等等)

(5)Math系列

(6)system系列

3、Java其他知识点

(1)javaIO

(2)java泛型

(3)Java多态

(4)java注解

(5)Java反射

(6)java中的语法糖

(7)java8、9、10新特性(主要是8)

(8)java异常

(9)创建类的4种方式

(10)String类型为什么不可变

(11)枚举类型

建议:对于Java基础,可以先了解到Java的源码级别,但是学过了Java虚拟机之后,要能够从jvm的内存角度等去分析和理解

三、设计模式

1、创建型模式(5种)

2、结构性模式(7种)

3、行为性模式(11种)

建议:设计模式主要是在工作中使用,最主要的是了解其思想,然后灵活的使用,但是从设计模式衍生出的知识点是面试常问知识点。

四、JVM系列

1、jvm内存结构

2、类的加载机制

3、GC算法、分析、优化、工具

4、编译器

5、优化参数等等。

建议:了解两个常见版本的jvm,java7和java8,然后对比分析去记忆,jvm是进阶的一个必备知识,面试和工作中经常使用。

OK,上面就是Java学习的基础阶段。以上这个阶段看完了基本上就可以进入下一阶段了。第一个阶段是最枯燥乏味的,但是当你学完了这些知识,再往下学习的时候,会发现对Java有一个全新的认识。对于这个阶段我的整体建议是要硬着头皮弄清楚。然后再开始下一个阶段。

第二阶段

零、预备知识

1、HTML+css+JavaScript

2、常见的前端框架Vue、React、Jquery等

3、jsp+servlet+jdbc

4、最简单的小项目训练一下。

建议:对于前端,你要弄清楚web的整个执行流程,前端要学会基本的使用。可以有一个精通、其他的了解,但是想要学得好就不要考虑学这个那个了,最好的方法就是全学了。学完了之后可以找个项目训练一下,最主要的弄清楚原理机制。

一、SSM框架

(1)spring

(2)mybatis

(3)springmvc

(4)SSM整合(包括使用maven整合)

建议:对于这个阶段其实也算是基础阶段,因为还有SSH框架,但是已经逐渐的不占优势了,即使是这个SSM框架也正在被SpringBoot框架所取代,但是这三种框架的原理与思想是极其重要的。

二、相关工具

(1)maven

(2)git

(3)IDEA

(4)eclipse

(5)日志

(6)Jenkins等等

建议:说实话这些工具分类没有严格的划分,eclipse正在逐渐失去市场,但目前依然是idea和eclipse的天下,像vscode这些市场份额还是比较小的,具体的可以看一下百度指数或者自己搜一下,对于maven和git是一个开发者必要的工具。需要学的工具太多了,就先了解这个几个常用的吧。

三、java网络编程

1、Java网络编程基础

(1)计算机网络基础知识

(2)socket编程

(3)案例项目训练

2、Java之NIO编程

3、序列化机制

(1)Java默认序列化机制

(2)序列化框架,比如protobuf等等

4、netty框架

5、Mina框架

6、其他通信框架,如grizzly、quickserver、xSocket等等

7、远程调用

(1)rmi

(2)thrift

(3)gRPC等等

(4)corba

建议:这一小阶段,我是书、教程、博客同时学习的,先把计算机网络基础知识弄清楚再往下学习,尽量每一个框架要了解其适用场景和各种场景下的使用

五、数据库(有基础知识)

1、Mysql、

2、Oracle

3、redis、

4、MongoDB

5、搜索引擎

(1)solr

(2)ElasticSearch

6、Memocached

建议:数据库写到这里总觉得不合时宜,因为第一阶段学习了之后,在学习jdbc的时候就需要用到数据库,这里的数据库是要深入去理解的,比如说各种数据库的性能优化。工作极其重要。在平时要了解这些数据库的使用场景,然后用到那个,在着重去理解。

六、并发编程基础

1、线程入门(概念、api等等相关基础)

2、Java内存模型

3、synchorized和volatile关键字

4、happen-before

5、锁系列(内容很多)

6、并发容器

(1)并发容器分类及其对比分析

(2)concurrentHashMap

(3)concurrentHashMap

(4)copyOnWriteArrayList

(5)ThreadLocal

(6)BlockingQueue(内部很多)

7、线程池相关知识

8、并发工具类

(1)CountDownLatch

(2)CyclicBarrier

(3)Semaphore

(4)Exchanger

9、实战

(1)生产者消费者问题

(2)并发与设计模式

建议:对于并发编程我觉得他的地位应该是处于最顶端,每一个知识点弄清楚掌握好就对了,上面的也只是列出了一部分基础。学习的时候遇到其他问题,弄清楚整理一下OK。还有一句,那就是最少要看到源码级别才好。

第二阶段会学习很长一段时间,因为只看一遍教程或者是敲一遍代码很难掌握,最好的方法就是把这些知识来回蹂躏,然后这一阶段学习完之后,下一阶段学习才算是真正的提高吧,全是一些框架这些。所以这一阶段是分专题的,因为没有严格意义上的先后顺序了,基本上就是用到哪一块就学哪一块就好了。第三阶段要对一些主流的框架,进行一个源码分析。

第三阶段

一、应用服务器

1、Tomcat

2、Jboss

3、Jetty

4、Weblogic

建议:一开始学习的时候应该都是先接触的Apache的tomcat服务器,但是后面的框架学习中会发现也会认识和接触很多其他的服务器,而且百度指数上说这些服务器的份额还在不断的飙升。

二、linux(工具)

1、常用命令和工具使用安装

2、Linux权限、进程等基础

3、网路相关知识,比如dns这些

4、shell脚本及编程

5、服务代理和集群

6、底层知识

建议:说实话linux就是一个操作系统,也是我们的编程环境,把基础知识弄清楚之后,在后面的学习中用到那个框架然后根据linux相结合就好。这一点可以在学习linux的时候按照运维的教程来学习,也比较全,上面的路线是我自己的,你可以根据自己的计划来分配

三、分布式系统

0、分布式系统基础知识

1、Dubbo

2、协调Zookeeper

3、消息中间件(四五个比较重要)

4、分布式缓存redis和MongoDB

5、springSession

6、高并发分流ngix

7、文件系统fastDFS

8、数据扩容mycat

9、Docker

10、Kafka

建议:分布式框架是为了数据处理的更好更高效,这些框架也在不断的更新,但是目前主流的大部分都在这,这些框架只要环境等等配置好,使用起来跑个基本案例很简单,剩下的就看自己的业务场景了,因为我也只是使用了其中几个。

四、微服务架构

1、springBoot

(1)入门

(2)web基础

(3)与其他各种框架的整合

(4)相关原理和注解

2、SpringCloud

建议:微服务这一块里面的知识也很多,但是相对分布式来讲还是简单很多,就按部就班的学习就好

五、安全

1、加密机制

2、shiro安全验证框架

3、其他安全知识

4、一致性算法

六、大数据和云计算

这一块的知识是在之前上课的时候了解到的,因为在网上看招聘信息的时候,经常会提到一句,有大数据云计算等经验者加分。因此将其列了进来。

这就是我整理的一套学习路线,参考了很多帖子博客,我也将在我的微信公众号里面持续更新这个目录的文章。感谢关注。

image
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,719评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,337评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,887评论 0 324
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,488评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,313评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,284评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,672评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,346评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,644评论 1 293
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,700评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,457评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,316评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,706评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,261评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,648评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,859评论 2 335

推荐阅读更多精彩内容

  • 一. Java基础部分.................................................
    wy_sure阅读 3,777评论 0 11
  • 2017.8.11(43) 走上财富自由之路的必然阶段,先通过出售自己的时间,日积月累,最终做到有资格购买别人时间...
    f25f133bf8eb阅读 172评论 0 0
  • 亲爱的家豪今天是十一假期的第一天,是我们祖国母亲的生日。今天别的同学的爸爸妈妈应该都放假在家陪孩子或者是带...
    家豪妈妈阅读 128评论 0 1
  • 黑色素瘤复发后还能手术么?恶性黑色素瘤是由皮肤和其他器官黑素细胞产生的肿瘤。皮肤黑色素瘤表现为色素性皮损在数月或数...
    翻盖云雾阅读 1,140评论 0 0
  • 我离开那座城市 不是逃离 是摒弃和厌恶 那里的天 那般狭长 山包围了我 风也在围堵着 那一切都让我愤怒的敌视 所以...
    张万灵阅读 186评论 0 1