史上最强Java学习路线图(6大必学阶段)

史上最强Java学习路线图(6大必学阶段)-mikechen

结合各大公司的技术要求,给大家总结了一份非常全面的最新Java学习路线图,一共包含以下六个阶段@mikechen

Java语言基础(第一阶段)

Java学习路线的第一阶段,我认为需要打好坚实的基础。

史上最强Java学习路线图(6大必学阶段)-mikechen

1.编程基础

  1. 常量与变量
  2. 数据类型
  3. 运算符
  4. 流程控制语句
  5. 方法
  6. 数组

2.面向对象

  1. 继承
  2. 多态
  3. 重写(Override)
  4. 重载(Overload)
  5. 封装
  6. 接口
  7. java包 package

3.泛型(Generic )

  1. 泛型的使用场景
  2. 泛型类型
  3. 泛型方法
  4. 泛型通配符?

4.Java集合

  1. 集合概述
  2. 集合特点
  3. ArrayList集合
  4. HashMap集合
  5. 常用集合优劣比较

5.异常处理

  1. 异常概述
  2. 异常分类
  3. 异常处理方案
  4. 自定义异常

6.注解(annotation)

  1. 注解的使用和原理
  2. 三种内置annotation
  3. 自定义annotation
  4. 注解类的反射调用
  5. 动态代理类如何处理

7.输入/输出 IO

  1. 字符输入流
  2. 字符输出流
  3. 字符缓冲输入流
  4. 字符缓冲输出流
  5. 复制文件
  6. 集合与文件中数据相互读写

 

java语言高级(第二阶段)

打好坚实的基础好,Java学习路线的第二阶段,我认为需要掌握好Java高级内容。

史上最强Java学习路线图(6大必学阶段)-mikechen

果你今后想进入Java高级俱乐部,这些内容你必须掌握牢固:

1.多线程

  1. Java线程:概念与原理
  2. Java线程:创建与启动
  3. Java线程:多线程的实现方案
  4. Java线程:线程生命周期
  5. Java线程:线程池
  6. Java线程:线程状态的转换
  7. Java线程:线程的同步与锁
  8. Java线程:线程的交互等等

线程的几个主要概念

在多线程编程时,你需要了解以下几个概念

  • 线程同步
  • 线程间通信
  • 线程死锁
  • 线程控制:挂起、停止和恢复

2.Java并发编程

  • 并发工具类
  • 并发容器
  • 并发锁等

3.反射(reflection)

  1. 类加载机制原理
  2. 反射构造方法、字段、方法
  3. Properties配置文件

4.网络编程

  1. 网络机制
  2. Socket原理机制
  3. UDP、TCP传输等

5.Java高级特性和类库

  1. java类加载器class loader
  2. java 程序运行的基础知识,java编译后的bytecode的整个运行机制,这一点对应.net的IL(intermediate language)。
  3. 理解Java nio,关于这一点网上有非常多的教程,这一条需要重点掌握,对于高并发的掌握很重要。
  4. java juc(java.util.concurrent)等等

6.JVM原理和调优

JVM最重要的三个部分必须要非常清楚,内存划分、class加载机制以及GC策略。搞清楚这三部分不仅仅是为了面试,也是为了让你对于Java有更深刻的理解,这对于你的Java生涯非常有帮助。

内存划分简单说分为三个部分,Young Generation(年轻代)、Old Generation(年老代)以及Perm Generation(永久代)。其中的Young Generation(年轻代),又分为Eden、From和To,其中From和To又统称为Survivor Spaces(幸存区)。

关于classloader机制的学习,可以结合tomcat去学习,了解清楚tomcat的classloader机制,看tomcat是如何保证各个APP之间的类隔离的。如果可能的话,看一下tomcat中classloader的源码,当中也包含了与tomcat类加载机制相似的部分。

至于GC,需要清楚GC Roots都有哪些,以及如何判断一个对象可以被回收。此外,GC的算法和策略也要有大概的了解。

 

Java Web阶段(第三阶段)

掌握好Java基础好Java高级后,可以开始Java学习路线的第三阶段,重点学习Web相关的技术。

史上最强Java学习路线图(6大必学阶段)-mikechen

1.前段技术掌握

  1. html
  2. css
  3. js
  4. jquery
  5. bootstrap

2.动态网页技术

  1. Java Servlet API
  2. Velocity
  3. FreeMarker
  4. Thymeleaf等常用模板引擎

比如,淘宝前端层使用的是velocity模板,部分公司采用jsp、freemarker等,基本类似。

3.linux服务器基本命令

在个阶段,也可以结合自己的情况,学习linux系统底层原理。

 

Java框架(第四阶段)

Java学习路线的第四阶段,重点学习市面上的主流技术框架。

史上最强Java学习路线图(6大必学阶段)-mikechen

1.Spring 框架

Spring框架是现在Java后端框架家族里面最强大的一个,拥有IOC和AOP两大利器,简化了开发的复杂性。而且Spring现在能与所有主流开发框架集成,是一个万能框架,Spring让Java开发变得简单。

 

2.Spring MVC 框架

SpringMVC是Spring的一个模块,一个“小弟”,用于web开发,可理解为servlet的升级版.

SpringMVC能和Spring IOC容器结合,拥有松耦合、方便配置、代码分离等特点,让 Java 程序员开发 WEB 项目变得更加容易。

 

3.Spring Boot 框架

springboot是spring家族中的一个全新框架,用来简化spring程序的创建和开发过程。在以往我们通过SpringMVC+Spring+Mybatis框架进行开发的时候,我们需要配置web.xml,spring配置,mybatis配置,然后整合在一起,而springboot抛弃了繁琐的xml配置过程,采用大量默认的配置来简化我们的spring开发过程。

SpringBoot化繁为简,使开发变得更加的简单迅速。

 

4.Spring Cloud

Spring Cloud 是分布式微服务架构的一站式解决方案,它提供了一套简单易用的编程模型,使我们能在 Spring Boot 的基础上轻松地实现微服务系统的构建。

Spring Cloud 被称为构建分布式微服务系统的“全家桶”,它并不是某一门技术,而是一系列微服务解决方案或框架的有序集合。

它将市面上成熟的、经过验证的微服务框架整合起来,并通过 Spring Boot 的思想进行再封装,屏蔽调其中复杂的配置和实现原理,最终为开发人员提供了一套简单易懂、易部署和易维护的分布式系统开发工具包。

 

5.Mybatis框架

Mybatis是一个用Java编写的持久层框架,它使用ORM实现了结果集的封装。

ORM是Object Relational Mapping 对象关系映射。简单来说,就是把数据库表和实体类及实体类的属性对应起来,让开发者操作实体类就实现操作数据库表。

 

6.Redis框架

Redis 是完全开源的高性能的 key-value 数据库,性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。

Redis支持数据的备份,即master-slave模式的数据备份。

如果你还有兴趣,可以自己搭建Lucene、solr框架,以及RocketMQ、Hadoop等等搜索、分布式缓存、异步消息等框架。

 

开发工具阶段(第五阶段)

Java学习路线的第五阶段,还需要掌握目前市面上的主流开发工具,包含如下:

史上最强Java学习路线图(6大必学阶段)-mikechen

1.web调试工具

  1. firefox
  2. firebug
  3. web developer
  4. yslow
  5. httpwatch
  6. ietester等

这些都是开发必用。

2.集成开发工具

Idea(首推) ,Eclipse

eclipse里的插件太多,推荐几个必装插件:

JadClipse 、run-jetty-run(很牛的热部署调试)、veloctiy、freemarker IDE、Subclipse、m2eclipse、mybatis Editor、 Easy Explorer等等。

3.版本控制工具

svn、git(首推)

4.构建工具

maven、nexus搭建maven私服

建议自己搭建一套nexus maven私服,成为你们公司的代码仓库员。

5.Java调试工具

  • jProfiler(性能跟踪)
  • jClarity(性能监控和日志分析)
  • Visualvm(性能分析和调优)等

java调试还有很多,以上偏向性能调优和分析

 

架构技术(第六阶段)

Java学习路线的第六阶段,这个时候还需要掌握目前主流的分布式、微服务等大型网站架构技术。

史上最强Java学习路线图(6大必学阶段)-mikechen

企业发展过程中,业务量和用户量逐渐增加,为了保证系统的可用性,系统越做越复杂,研发人员增多,大家很难共同维护一个复杂的系统,往往修改部分内容,导致牵一发而动全身,所以我们需要升级系统架构,需要用到分布式微服务的技术。

学习完该阶段内容,可以具备大型SOA架构和微服务架构能力,能掌握大型微服务项目必备技术和实际经验。

Web应用程序发展的早期,大部分web工程是将所有的功能模块打包到一起并放在一个web容器中运行,这就是大家熟知的单体架构。

随着业务的发展,为了支撑更大的访问,很多公司正在从单体系统转向微服务。

Spring Framework 提供了Spring Cloud和Spring Boot,极大地简化了Java微服务的开发。

如果想掌握好微服务,你首先需要了解:如何设计一个微服务框架?,其次掌握好Spring Cloud的5大核心组件详解,以及了解从单体架构、到SOA、再到微服务的架构设计

其次,当你需要考虑使用微服务的时候,一定会涉及分布式架构系统拆分原则、需求、微服务拆分步骤

最后,拆分后还需要考虑监控微服务等:微服务技术架构、监控、Docker、服务治理等详解

陈睿mikechen

10年+大厂架构经验,资深技术专家,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

关注「mikechen」公众号,获取更多技术干货!

后台回复面试即可获取《史上最全阿里Java面试题总结》,后台回复架构,即可获取《阿里架构师进阶专题全部合集

评论交流
    说说你的看法