2022年末最新最全Java学习路线,结合工作经验和培训机构整理
lipiwang 2024-11-24 18:32 9 浏览 0 评论
笔者于2016年入Java,先后从事开发和教育行业,现就职于某供应链公司担任后端开发工程师。
Java从1995年诞生到如今,体系成熟,运行稳定,成为大型后端系统的首选语言,也是各培训机构宠儿,笔者结合近几年行业的发展和变化以及个人经历总结一下适合于现在的Java学习路线。
前言
我们需要有一个前提共识是,并不是将所有的技术学完之后才可以去就业,也不要给自己太大的心理压力,核心在于【基础的掌握】、【框架应用】、【项目实战】三块掌握就业基本没有问题,剩下的就看自己的职业规划或企业需求来计划下一步的前进方向
● 初学者建立正确且高效知识体系
● 中高级工程师查漏补缺,更上一层
● 资深开发和专业研究员可以当`少儿读物`
下边以思维导图方式罗列出大概的体系,后续会陆续更新每一个点的技术文档和视频,喜欢的记得加关注~~~
JavaSE
这是Java的基础部分,也是入门第一步,非常重要,时间不紧张的话可以多花点时间,多做点练习题
JavaSE 基础:环境搭建和配置、变量、数据类型、流程控制语句、数组、面向对象编程
JavaSE 进阶:常用API、异常体系、集合体系、IO流、多线程、网络编程、泛型、反射、注解、枚举
Java 高级特性:Lambda表达式、函数式接口、Stream、JUC包、Lock、新日期API、设计模式、ConcurrentHashMap、LinkedBlockingDeque......
JavaWeb
这块利用Java开发Web应用,诸如HTML、CSS、JavaScript这些简单学习一下即可,甚至有些教程基本不会有这三块的体现。
现在开发项目也不会使用Servlet和JSP,其中的基础概念比较重要,之前也一度想略过Servlet和JSP,直接介绍SpringMVC和模板引擎等开发项目,但是后边的框架也是对基础的封装,学习了解对理解框架,用好框架有很好的铺垫作用。
HTML:介绍、基本标签、实体符号、表格、表单
CSS:CSS介绍和引入方式、边框、字体、效果、盒子模型、布局、定位
JavaScript:JavaScript概述、基础语法、事件、BOM操作、DOM操作
Tomcat:安装与启动、Tomcat体系结构、Tomcat配置、部署项目
Servlet:Servlet作用和生命周期、Servlet常用接口和类、配置Servlet、监听器、过滤器、Cookie和Session、转发和重定向、注解开发
JSP:JSP动作指令、JSP九大内置对象、EL和JSTL、自定义标签、JSP分页、JSP文件上传
Ajax:了解Ajax概念、XMLHttpRequest对象、使用jQuery实现Ajax、ajax获取JSON数据、JSON语法格式、JavaScript中的JSON、Java中JSON与对象转换
MySQL
记得在培训学校的时候,学生追着问【数据库啥时候学?我们学习Sql Server吗?听说Oracle很厉害啊】。感觉数据库非常神秘,我在工作过程中有些单位使用国产数据库的也遇到过,不过我还只遇到过一家,所有产品都是国产的,原因你能猜到吗?
不过一般企业都在使用MySQL,我们以MySQL为数据库的入口是非常不错的选择!
MySQL基础:MySQL数据类型、DDL、DML、DCL、锁机制、事务、MVCC(多版本并发控制)、存储引擎(Innodb、MyISAM)、MySQL语句性能分析、索引、索引数据结构、优化SQL、第三范式
MySQL高级特性:视图、游标、字符集、全文索引、分区表、分布式事务、缓存
MySQL实战:JDBC、数据库连接池、备份与恢复、负载均衡、数据分布、故障切换、主从复制、监控、分库分表
数据库学习完,使用Servlet+JSP+MySQL+Tomcat去开发两个以上项目,最好类型不一样
框架
框架这块先学会使用,再学会怎么用好,再研究源码原理即可,掌握好Spring、SpringMVC、MyBatis、SpringBoot、会用Redis,学习一下Linux部署项目,基本可以找一个实习工作试试。
早些年使用Spring+Struts2+Hibernate开发,后来演变为Spring+SpringMVC+MyBatis,现如今要求掌握SpringBoot,【不得不感慨,唯一不变的就是变化】
MyBatis:ORM概念、配置和使用、执行流程、别名机制、动态SQL、缓存、连接池、插件使用、源码分析
Spring:Spring核心配置和使用、IOC、AOP、执行流程和Bean声明周期、常用注解、循环依赖、事务、源码解析、集成MyBatis
SpringMVC:SpringMVC执行流程、Tomcat的SPI机制加载SpringMVC容器、RequestMappingInfo和HandlerMethod映射关系、
HandlerMapping和HandlerAdapter关系、HandlerInterceptor的前置、中置、后置过滤器原理、HandlerAdapter参数解析原理、
响应式编程-WebFlux
SpringBoot:SpringBoot环境搭建、配置文件、SpringBoot实现前后端分离、SpringBoot全局异常处理、SpringBoot实现RestFul、热部署、SpringBoot启动器原理、核心源码、自动配置
SpringSecurity:执行流程、SpringSecurity常用接口和类、SpringSecurity配置、RBAC权限模型
SpringCloud Netflix:微服务架构、分布式架构、分布式系统问题和解决方案、Eureka注册中心、Ribbon负载均衡原理、Feign声明式服务调用、Zuul网关、Config配置中心并集成Git和SVN、Hystrix服务熔断和降级、Bus/Sleuth/Stream、微服务日志、自定义分布式配置中心
SpringCloud Alibaba:Nacos-Discovery服务发现、Nacos-Config配置中心、Sky Walking链路跟踪、Assembly Plugin、Sentinel限流、熔断器、Seata分布式事务
Dubbo:Dubbo架构原理和内核、Dubbo SPI原理、Dubbo IOC和AOP原理、Dubbo动态编译、服务发布原理、服务引用原理、集群容错设计、服务降级设计、网络通信架构、网络通信编码解码
中间件
中间件这块,主要掌握Redis、消息队列、Nginx、Tomcat刚需技术点,剩下的可以当做加薪选项,小白可以先不关注!
Redis:Redis命令和数据类型、SpringBoot集成Redis、Redis缓存雪崩、缓存击穿、缓存预热、热点Key、缓存降级、短链接、分布式锁、秒杀、堆外缓存、动态刷新、Redis和DB双写一致、删除策略、数据倾斜、核心原理、源码解读
RabbitMQ:系统架构、消息发布和消费权衡、消息拒绝、应用解耦、集群化和镜像队列
RocketMQ:消息存储机制、多种消息模式、高可用机制、provider与consumer负载均衡机制、消息过滤TAG/SQL及类过滤模式
Kafka:Kafka生产者和消费者、高级特性、集群
消息队列实战:消息重试(顺序/无序/死信队列)、消费幂等问题、可靠数据传递、集群搭建、与Spring整合、镜像队列、削峰填谷
Zookeeper:Zookeeper指令、zookeeper节点类型、zkclient、集群选举原理、分布式锁
Nginx:Nginx架构模型和配置、location配置、rewrite解析、动静分离、代理和反向代理、跨域
Tomcat:Tomcat体系结构、HTTP请求解析和处理流程、Tomcat核心组件、Tomcat集群与会话复制方案、BIO/NIO源码、类加载机制及源码解析
mycat:实现MySQL读写分离、数据库切分、全局表、ER表、分片机制解析
sharding-jdbc:引擎原理和数据分片、读写分离、编排分治、分布式事务、数据脱敏
Elasticsearch:存储结构、分布式CRUD、索引管理、分片、搜索优化
Logstash:架构、数据采集、数据输出、过滤器
Docker:基础操作、Docker File、网络存储、DockerCompose、微服务与Docker集成实现动态扩容
Netty:HTTP/TCP/UDP网络协议详情、原生JDK网络编程、服务器推送技术实战、WebSocket通信实战、Netty粘包/半包问题、Netty源码
工具
重点掌握哦,开发必备技能!Jenkins用了都说香
Linux:安装、基础命令、用户与用户组系列操作、文件与权限系列操作
Jenkins:自动化部署、持续部署、远程测试
Maven:安装、配置和使用、坐标和依赖、聚合和继承、生命周期与插件、仓库及版本管理、私服
Git:Git操作命令、基本运行流程、常见问题、GitHub、Gitee
JVM
加薪必备技能点,基础也要了解内存划分和垃圾回收机制。面试也会问到一些虚拟机参数问题!
运行时数据区:程序计数器、JVM栈、本地方法栈、堆、方法区、运行时常量池、直接内存、OOM(OutOfMemoryEror)、StackOverflowError
类加载、链接、初始化、创建对象的过程、HotSpot内核、HotSpot启动、HotSpot系统初始化、HotSpot Oops模块、Klass框架、对象标识机制、对象内存布局、垃圾回收器、垃圾回收算法、指令集、解释器、JIT、字节码指令集、字节码执行引擎
虚拟机监控工具:Attach、Heap Dump、jhat、jstack
Java内存模型:JMM、线程实现、线程调度、状态转换、线程安全、锁优化
数据结构和算法
基本概念:时间复杂度、空间复杂度、分治法、动态规划法、贪心算法、回溯法、分支界限法
线性结构:线性表(数组、链表)、字符串、栈、队列、hash表、位图bitmap
树形结构:二叉树、平衡查找树、多路查找树、堆、字典树、并查集
图形结构:遍历、最短路径、最小生成树、拓扑排序
查找算法:顺序表查询、二分查询、差值查找、斐波那契查找、精密索引、分块索引、倒排索引、二叉查找树、平衡查找树(平衡二叉树AVL、红黑树)、多路查找树(B树、B+树)、散列表查找树(散列函数、冲突处理)
排序算法:直接插入排序、希尔排序、简单选择排序、堆排序、冒泡排序、快速排序、归并排序、计数排序、基数排序、桶排序
其他技能
成为架构师必经之路,转变管理岗的必备技能!
高可用、高并发、高性能
高伸缩、高安全:数据一致性、幂等性、限流保护、熔断降级、微服务过载、分布式问题、系统监控、可伸缩性
三方服务:支付、地图、OSS对象存储、图像识别、短信服务、视频点播等
需求沟通、需求撰写、技术文档撰写、架构文档撰写、工作汇报、面向上级编程、PPT汇编、相关管理证书
最后如果就业的话,当然还需要:
- 准备简历
- 刷面试题
- 项目当然也不能少哦,即使没有工作经验,也一定要做三个以上企业级项目
总结
学好编程,做好程序员,最终有个好归宿,核心在于以下四点:
- 【基础】:树无根也就无叶,底层原理是不变的,打好基础非常重要,想不明白的时候就想想基础
- 【编码】:宝剑锋从磨砺出,多做项目,多刷题,边做边思考,想象其中的奥妙
- 【吸收】:经验包涵着珍贵的学问,多看看Github优质开源项目和技术文档或书本,往往记录很多宝贵的经验,运用到做过的项目中进行优化,是非常不错的
- 【坚持】:有志者事竟成,要走的远就要有非凡的意志,刚开始很难,我也曾想过放弃,做其他“副业”搞钱,为将来铺路,这很滑稽, `【不要焦虑,十年磨一剑】`,坚持下来,提升自己,未来在行业内转型更安全,更稳定
收藏等于学会,行动起来吧吗!
相关推荐
- 前端入门——css 网格轨道详细介绍
-
上篇前端入门——cssGrid网格基础知识整体大概介绍了cssgrid的基本概念及使用方法,本文将介绍创建网格容器时会发生什么?以及在网格容器上使用行、列属性如何定位元素。在本文中,将介绍:...
- Islands Architecture(孤岛架构)在携程新版首页的实践
-
一、项目背景2022,携程PC版首页终于迎来了首次改版,完成了用户体验与技术栈的全面升级。作为与用户连接的重要入口,旧版PC首页已经陪伴携程走过了22年,承担着重要使命的同时,也遇到了很多问题:维护/...
- HTML中script标签中的那些属性
-
HTML中的<script>标签详解在HTML中,<script>标签用于包含或引用JavaScript代码,是前端开发中不可或缺的一部分。通过合理使用<scrip...
- CSS 中各种居中你真的玩明白了么
-
页面布局中最常见的需求就是元素或者文字居中了,但是根据场景的不同,居中也有简单到复杂各种不同的实现方式,本篇就带大家一起了解下,各种场景下,该如何使用CSS实现居中前言页面布局中最常见的需求就是元...
- CSS样式更改——列表、表格和轮廓
-
上篇文章主要介绍了CSS样式更改篇中的字体设置Font&边框Border设置,这篇文章分享列表、表格和轮廓,一起来看看吧。1.列表List1).列表的类型<ulstyle='list-...
- 一文吃透 CSS Flex 布局
-
原文链接:一文吃透CSSFlex布局教学游戏这里有两个小游戏,可用来练习flex布局。塔防游戏送小青蛙回家Flexbox概述Flexbox布局也叫Flex布局,弹性盒子布局。它决定了...
- css实现多行文本的展开收起
-
背景在我们写需求时可能会遇到类似于这样的多行文本展开与收起的场景:那么,如何通过纯css实现这样的效果呢?实现的难点(1)位于多行文本右下角的展开收起按钮。(2)展开和收起两种状态的切换。(3)文本...
- css 垂直居中的几种实现方式
-
前言设计是带有主观色彩的,同样网页设计中的css一样让人摸不头脑。网上列举的实现方式一大把,或许在这里你都看到过,但既然来到这里我希望这篇能让你看有所收获,毕竟这也是前端面试的基础。实现方式备注:...
- WordPress固定链接设置
-
WordPress设置里的最后一项就是固定链接设置,固定链接设置是决定WordPress文章及静态页面URL的重要步骤,从站点的SEO角度来讲也是。固定链接设置决定网站URL,当页面数少的时候,可以一...
- 面试发愁!吃透 20 道 CSS 核心题,大厂 Offer 轻松拿
-
前端小伙伴们,是不是一想到面试里的CSS布局题就发愁?写代码时布局总是对不齐,面试官追问兼容性就卡壳,想跳槽却总被“多列等高”“响应式布局”这些问题难住——别担心!从今天起,咱们每天拆解一...
- 3种CSS清除浮动的方法
-
今天这篇文章给大家介绍3种CSS清除浮动的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。首先,这里就不讲为什么我们要清楚浮动,反正不清除浮动事多多。下面我就讲3种常用清除浮动的...
- 2025 年 CSS 终于要支持强大的自定义函数了?
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发!1.什么是CSS自定义属性CSS自...
- css3属性(transform)的一个css3动画小应用
-
闲言碎语不多讲,咱们说说css3的transform属性:先上效果:效果说明:当鼠标移到a标签的时候,从右上角滑出二维码。实现方法:HTML代码如下:需要说明的一点是,a链接的跳转需要用javasc...
- CSS基础知识(七)CSS背景
-
一、CSS背景属性1.背景颜色(background-color)属性值:transparent(透明的)或color(颜色)2.背景图片(background-image)属性值:none(没有)...
- CSS 水平居中方式二
-
<divid="parent"><!--定义子级元素--><divid="child">居中布局</div>...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- maven镜像 (69)
- undefined reference to (60)
- zip格式 (63)
- oracle over (62)
- date_format函数用法 (67)
- 在线代理服务器 (60)
- shell 字符串比较 (74)
- x509证书 (61)
- localhost (65)
- java.awt.headless (66)
- syn_sent (64)
- settings.xml (59)
- 弹出窗口 (56)
- applicationcontextaware (72)
- my.cnf (73)
- httpsession (62)
- pkcs7 (62)
- session cookie (63)
- java 生成uuid (58)
- could not initialize class (58)
- beanpropertyrowmapper (58)
- word空格下划线不显示 (73)
- jar文件 (60)
- jsp内置对象 (58)
- makefile编写规则 (58)