文章目录
- 前言
- 一、java打怪升级地图
-
- 1、java基础
- 2、数据库
-
- 3、编程强化
- 4、软件项目管理
- 5、热门技术框架
- 6、分布式架构
- 7、服务器中间件
- 8、服务器技术
- 9、容器技术
- 10、业务解决方案
- 总结
前言
技术人的道路没有容易二字,想要保持竞争力就要不停的学习。今天分享一个java学习的路线图,希望大家都能不停的打怪升级,成为武林高手。
一、java打怪升级地图
1、java基础
java基础部分,内容其实真的不多,如果工作几年,面试的时候连面向对象编程的3大特性,集合之间的区别,抽象类和接口的区别,线程有几种创建方式,线程的并发控制都不知道,直接一个java基础掌握一般的评价,整体印象都不好了,就会超级失分。
2、数据库
说明:目前主流的关系型数据库除了mysql,oracle,最近PostgreSQL也逐渐流行。数据库连接池除了传统的C3P0和阿里的Druid外,spring boot默认的连接池hikari也越来越流行。
数据库主要是需要掌握sql编写,sql优化,索引的使用,锁和事务。其他原理,部署架构,高可用,分库分表后面逐渐深入研究。
3、编程强化
说明:
23种设计模式一定要做到心中有数,只有先熟悉了相关理念和设计思路及其运用场景,你才能够在项目中灵活使用写出高质量的代码。
JVM优化在工作也许碰到的少,但出现问题也许就是大问题,也是中高级程序员面试经常问到的知识点。
数据结构和算法,这块一般中小型业务型开发公司要求不大,实际项目运用的也少,但是如果你励志进互联网大厂,那这块就是重重之中,只能Letcode死磕算法题。
多线程高阶无非就是线程池,线程间协作,线程的高级控制。
MINA和Netty都属于基于NIO的网络编程框架,目前来说Netty更加主流。
4、软件项目管理
说明:主要是代码打包和版本管理。
Maven是目前最主流的项目依赖jar包管理工具,主要依赖配置的版本号管理和scope范围管理,知道怎么解决jar包冲突问题。
SVN、Git、码云都都是目前主流的代码版本管理工具。
Jenkins是持续集成工作,主要用于CI/CD持续集成发布,也就是项目自动打包发布。
Sonar是代码质量管理工具,可以和IDEA集成使用,也可以和Jenkins配合使用。
5、热门技术框架
说明:
spring框架应该是目前java项目开发的核心。
Spring MVC目前已经逐渐被Spring Boot取代。
持久化框架JPA其实就是基于Hibernate,但项目中还是推荐使用Mybati直接基于sql基于的半自动化映射框架,更轻量级,更灵活,也更容易优化。
Mybatis Plugs是一款为了简化Mybatis使用的产品,对mybatis进行扩展增强,实现mybatis的CRUD简化操作,不用在书写基本的增删改查sql吗,全部通过BaseMapper 实现。
6、分布式架构
说明:
核心是基于Spring boot的微服务架构Spring Cloud全家桶,目前最主流的微服务框架。
在分布式系统下,系统复杂度会提升很多,产生了很多分布式问题,典型的:
分布式唯一ID,分布式锁,分布式事务,限流,熔断,降级,负载均衡,服务治理,服务监控,调用链路监控等问题。
7、服务器中间件
8、服务器技术
9、容器技术
10、业务解决方案
总结
1、技术的道路很纯粹,吃的了苦,耐得住寂寞,将自己的技术功底夯实了,自然就可以找到一份满意的工作。
2、对技术的了解不要浮与表面,知道一个技术是干啥的,就在简历上写了解,写过一个demo就是熟悉,项目中用过就写精通。要对写在简历上的每个技术名词负责。
3、行路难,行路难,终生学习,多记录总结反思。
4、不要天天想着一夜暴富,财富自由。脚踏实地,有一定资本才能有更多的选择,享受更多美好的东西。
希望和大家一起打怪升级,在程序员的道路上能越走越远。
说明:文中的图片都截取自黑马程序员,对原文中的前端部分进行了截取,目前大多前后端分离,每个人的精力是有限的,将精力用到刀刃上。黑马程序员的很多免费教程还是不错的,推荐大家学习。
网址链接:http://yun.itheima.com/map/javaeetree?pc&1910zzpts
更多精彩,关注我吧。