毕业了,想进大厂?这个Java学习路线图助力你圆梦
很多初学编程或中途转Java的小伙伴们,挺迷茫,不知道从哪里学起。
故整理了一下Java开发的学习路线,适合零基础、初学者入门学习,有基础的小伙伴可以略过,希望大家在学习的时候,能够节省时间。
废话不多说,先上一张大型项目架构图,接下来我会给大家一步一步剖析。
通过上图,我们可以看到这是一个基于SpringCloud微服务的典型项目,分层清晰,涉及微服务、分布式、负载均衡等众多应用技术。这里只是举例说明一个大型项目涉及到的技术应用很多,可能初学者看了头大。这没关系,我们继续一步步的学习。最终你就会熟练掌握这些技术的。01.Java基础
一、Java基础核心
基本的程序语法是入门一个编程语言的必经之路,而且学好基础的语法还可以帮助小白迅速建立编程逻辑思维,学好基础语法之后,便要理解Java面向对象的编程逻辑,训练自己以对象的方式去写Java的程序。
Java基础
二、集合
1)数组和集合的比较
数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更灵活更实用,而且不同的集合框架类可适用不同场合。如下:数组能存放基本数据类型和对象,而集合类存放的都是对象,集合类不能存放基本数据类型。数组和集合存放的对象皆为对象的引用地址。数组容易固定无法动态改变,集合类容量动态改变。数组无法判断其中实际存有多少元素,length只告诉了数组的容量,而集合的size()可以确切知道元素的个数集合有多种实现方式和不同适用场合,不像数组仅采用顺序表方式集合以类的形式存在,具有封装、继承、多态等类的特性,通过简单的方法和属性即可实现各种复杂操作,大大提高了软件的开发效率
2)Java集合类存放在java.util包中,是一个用来存放对象的容器。
注意:
1.集合只能存放对象。比如你存入一个int型数据66放入集合中,其实它是自动转换成Integer类后存入的,Java中每一种基本数据类型都有对应的引用类型。
2.集合存放的都是对象的引用,而非对象本身。所以我们称集合中的对象就是集合中对象的引用。对象本身还是放在堆内存中。
3.集合可以存放不同类型,不限数量的数据类型。
集合
三、并发编程
对于一个Java程序员而言, 能否熟练掌握并发编程是判断他优秀与否的重要标准之一 。因为并发编程是Java语言中最为晦涩的知识点,它涉及操作系统、内存、CPU、编程语言等多方面的基础能力,更为考验一个程序员的内功。
并发编程02.JavaWeb
学完上述内容,JavaSE就掌握的差不多了,此时我们可以开始学习JavaWeb了。
一、Tomcat
Tomcat
二、HTTP协议
HTTP协议
三、Servlet
Servlet
四、Cookie、Session
Cookie、Session
五、Filter 过滤器
Filter 过滤器
六、Listener 监听器
Listener 监听器
七、JSP
八、El表达式
九、Java Web 设计模式
十、文件上传
03. MySQL、Redis
04.Spring
05.SpringMVC
06.MyBatis
07.SpringBoot
SpringBoot工作机制:@SpringBootApplication、@EnableAutoConfiguration
SpringApplication程序启动原理:SpringApplication执行流程、SpringApplicationRunListener、ApplicationListener、ApplicationContextInitializer、CommandLineRunner
SpringBoot核心组件:Starter、Actuator、AutoConfiguration、SpringBoot CLI
SpringBoot集成MyBatis
SpringBoot集成Redis
SpringBoot实现多环境配置动态解析
SpringBoot热部署实战 08.Redis
09.JVM
10.分布式基础
CAP原理:C(Consistency一致性)A(Availability可用性)P(Partition tolerance分区容错)
BASE理论:Basicly Available、Soft State、Eventual Consistency,也就是基本可用、软状态、最终一致性
一致性算法:Paxos算法、Raft算法、一致性哈希算法、Gossip协议、ZAB协议等11.SpringCloud
Netflix
(1)微服务注册中心 Eureka
基础
Eureka Server构建使用
Eureka Client构建使用
Provier和Consumer调用
进阶
服务注册流程
服务续约流程
服务下线流程
面试
多注册中心优劣势剖析
Eureka注册慢原因剖析
自我保护模式剖析
(2)负载均衡器 Ribbon
基础
Ribbon架构图剖析
Ribbon环境构建
Ribbon调用
进阶
Ribbon参数及使用
Ribbon负载均衡算法区别
Ribbon的IPing算法区别
面试
Ribbon源码分析
Ribbon自定义负载均衡算法及实战场景
Ribbon ServerList使用场景
(3)RPC跨服务调用 Feign
基础
Feign入门
Feign参数绑定
进阶
Feign核心之Client
Feign整合Ribbon实现负载均衡
Feign整合Hystrix实现降级
面试
Feign自定义配置
Feign调优核心之HttpClient
Feign调优核心之请求压缩优化
(4)熔断降级利器 Hystrix
基础
Hystrix架构图剖析
Hystrix两种命令四种模式
进阶
Hystrix隔离技术
Hystrix熔断机制
Hystrix监控机制和使用
面试
Hystrix如何合理设置线程池数量
Hystrix参数全解析
Hystrix各项参数调优
(5)网关 Zuul/Gateway
基础
API网关出现背景及其优缺点
Zuul/Gateway使用
Zuul/Gateway架构图解析
进阶
Zuul/Gateway表达式
Filter全生成周期
Zuul/Gateway整合Ribbon和Hystrix使用
面试
Zuul/Gateway之Filter源码
Zuul/Gateway自定义Filter
Zuul/Gateway安全实战
这里我建议大家先把SpringCloud Netflix学完再去学SpringCloudAlibaba这样上手更快,也更简单。
Alibaba
Alibaba Nacos:服务注册与配置中心
SpringCloud Alibaba Sentinel:实现网关动态限流