微信公众号,关注:georgezheng

    从事Java工作快四年了,对Java的学习不仅没停止过,还被越甩越远。在这条路上也踩过无数次的坑,2022年我开始重新梳理Java 学习路线,在后面的时间里查缺补漏。

    首先,我先分享下自己对不同学习方式的理解,小伙伴们可以根据自己情况选择。看视频系统学习,比如培训机构的课程、MOOC的课程等,好处就是有老师带着讲解,易于理解和掌握,非常适合初学者。

    看书学习,如《Redis设计与实现》、《 Java 并发编程的艺术》,便于了解技术脉络和深入学习知识点。

    看博客和源码精进学习。博客的好处是有些知识点会以很通俗的方式讲解出来,很快上手。

第一阶段:Java 基础
    Java 基础要求对 Java 语言有一个初步的了解。

    这部分主要学习的内容有:基本程序结构,类与对象,接口,泛型,反射,集合,异常与调试, Java 网络编程, Java I/O和多线程。

第二阶段:数据库
    MySQL 和 Oracle 都是广受企业欢迎的数据库,其中 MySQL 是目前应用最广泛的开源关系数据库。

    这部分主要学习的内容有:数据库的CRUD操作、JDBC API、数据库特性和数据库连接池。

    其中,数据库连接池是为了避免频繁地创建和销毁 JDBC 连接,常见连接池包括 C3P0,Druid 和 HikariCP,目前使用最广泛的是HikariCP。

    除此之外,如果要深入学习MySQL的使用和原理,可以看极客时间的专栏《MySQL实战45讲》,阿里资深技术专家讲解的课程,有很多生产经常遇到的问题,非常有深度。

第三阶段:Java Web
    学习 Java Web,我们不仅需要掌握后端 Java 技术,还需要学习些前端知识。

    前端有三大基础技术 Html、CSS和 Java Script,初学的话,学习这些就可以了。如果想做出更好的交互式效果,可以再学习Vue和React等前端技术。

    后端 Java 技术包括 Servlet、Filter、Listener、Session、Cookie、JSP、EL 表达式和 JSTL 等。

    其中,像 JSP 这样比较老的技术,目前在各大互联网公司基本不再使用,已经被 Freemark、Thymeleaf 这样的模板引擎所替代,我们只需要了解基本使用即可。

    入门 Java Web,推荐尚硅谷的 Java Web 教程,教程不仅包括前端三大技术,还有后端 Java 技术,最后还会带大家做一个书城项目。

第四阶段:主流框架
    这部分我们要学习的主流框架主要有 Spring、Spring MVC 和 MyBatis,俗称 SSM 框架。

    Spring 是一个轻量级的 Java 开发框架,现在已经是最受欢迎的企业级 Java 应用程序开发框架,目前已经更新到 Spring5。

    Spring 框架的核心特性是依赖注入(DI)与面向切面编程(AOP),Spring 框架的组成结构如下所示:

    Spring MVC 是一个基于MVC架构,用来简化web应用程序开发的框架,它是 Spring 的一部分,SpringMVC 已经成为目前最主流的 MVC 框架之一。

    MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。

    在使用传统JDBC时,往往需要写很多JDBC代码,需要自己写SQL语句以及自己装配参数,然后自己对结果集进行封装处理。而Mybatis则帮我们简化了以上功能,只需要一些配置文件(xml)或是注解即可完成对数据库的查询以及结果的映射封装。

第五阶段:服务器中间件
    学完上面的内容,我们已经具备实际项目的开发能力了,但是要解决些复杂的业务场景,我们还要学习Redis、MQ、Elasticsearch这些中间件。

Redis
    Redis 是一个 key-value 存储系统,是跨平台的非关系型数据库,可用作数据库,高速缓存和消息队列代理。

Redis作为当下主流的缓存技术,已经成为互联网企业的不二首选。

想深入学习的小伙伴,推荐阅读《Redis设计与实现》,知识点非常丰富,讲了很多底层的原理,我曾经看了三遍,对我面试帮助很大,非常推荐!

MQ
    MQ(Message Queue)是一种跨进程的通信机制,用于传递消息。通俗点说,就是一个先进先出的数据结构。MQ有三大主要作用分别为解耦、异步、削峰/限流。

    消息中间件有很多种,小伙伴们根据喜好或者项目需要,选择一款MQ学习就可以了。

    此外,如果要深入学习,就得看原版书籍结合视频学习,翻阅底层原理。

Elasticsearch
    全文搜索属于最常见的需求,开源的 Elasticsearch是目前全文搜索引擎的首选。它可以快速地储存、搜索和分析海量数据。维基百科、Stack Overflow、Github 都采用它。

    Elasticsearch的底层是开源库 Lucene。但是,必须自己写代码去调用Lucene的接口。Elastic 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

第六阶段:微服务和分布式
    对于实习和校招的小伙伴来讲,学好前五阶段的技术知识,再深入学习个技术点就可以了,如果还有时间和精力的小伙伴,可以学习微服务和分布式的内容。

Spring Cloud
    Spring Cloud 是一套完整的微服务解决方案,基于 Spring Boot框架。

准确的说,Spring Cloud 是一系列框架的有序集合,它利用 Spring Boot 的开发便利性简化了分布式系统的开发,比如服务发现、服务网关、服务路由、链路追踪等。

Dubbo
    值得一提的是,还有阿里开源Dubbo,Dubbo一个高性能优秀的服务框架。简单地说,Dubbo是一个基于Spring的RPC(远程过程调用)框架,能够实现服务的远程调用、服务的治理。

至于Spring Cloud 和Dubbo 有什么区别,大家可以搜索下。这里用网络上一个台式电脑的比喻来说就是:Dubbo 是品牌机,Spring Cloud 是组装机。

ZooKeeper
    ZooKeeper是一个高可用的分布式管理与协调框架,基于ZAB算法(原子消息广播协议)的实现。该框架能够保证分布式环境中数据的一致性,使得ZooKeeper成为了解决分布式一致性问题的利器。

第七阶段:进阶优化
    学会前面这些,我们就可以独立完成一个小项目,独立完成项目组分配给你的开发任务。

    但是这还不足以写出好的代码,我们要想写出好的代码,还需要学习设计模式,学习多线程,以及JVM的内部原理等。同样,这些也是面试的必考点。

    设计模式的书籍推荐《HeadFirst设计模式》,这是一本图文并茂的书籍,适合入门。

    JVM 的书籍推荐《深入理解 Java 虚拟机》,这本书是 Java 开发者必看的书,很多 JVM 的文章都是来自这本书。

    Java 并发方面,可以看《 Java 并发编程的艺术》,这本书深入到JVM、CPU层面讲解了 Java 并发框架、线程池的原理等,面对面试足够了;还有《并发编程实战》,这是一本不错的 Java 并发参考手册。

最后:

    永远不要推迟你的计划。立即开始学习,因为“好时机”永远不会到来。等待只会浪费宝贵的时间。此外,年龄越大,对自己的怀疑就会越大,就更难开始。

    技术不是人生的唯一追求,只是我们谋生的一种小手段而已!

更多推荐

2022-Java学习路线梳理