首页 > 编程知识 正文

java后端学习路线手册(建议收藏):一文告诉你

时间:2023-05-05 01:06:18 阅读:264946 作者:334

1. 语言相关

1.1 Java

核心知识点:

Java的类加载机制JVM相关:JVM内存模型和结构,GC原理,性能调优泛型集合体系异常体系IO体系多线程编程反射Servlet

推荐数据:

《Java编程思想》《Effective Java》《深入理解Java虚拟机》1.2 Shell、Python等脚本语言

介绍

此类脚本语言的意义在于辅助后端开发,包括系统运维,工具集成(借助管道、重定向),文本处理,数据计算等工作,提升后端工作效率

核心知识点(Shell)

常用的linux操作和运维命令管道、重定向awk、sed等文本处理工具

推荐书籍

《linux与unix shell编程指南》《鸟哥的Linux私房菜》《Python编程 从入门到实践》1.3 SQL 语言

介绍

通用于传统关系型数据库和大数据场景的结构化查询模型语言。传统数据库方面要精通mysql的sql语法;大数据场景主要掌握Hive SQL(Impala和Spark SQL等均在兼容Hive SQL)

核心知识点:

区分DDL和DML经典查询语句主要结构表连接(内连接,左外连接,右外连接,全连接)函数(普通函数,聚合函数)索引分区

适用场景

传统数据库,传统SQL:用于事务性数据操作,通常用于系统的业务库;大数据场景下的SQL:用于数据分析,交互式查询,批量数据处理等。

推荐书籍

MySQL:《高性能MySQL》Hive SQL:《Hive编程指南》 

本人在这里整理了20多家公司的面试题,以及各种关于Spring、Spring boot、Spring MVC、MyBatis、MySQL、JVM等知识点,限于篇幅并没有将答案写在此文上,如果有需要的同学请点击这里即可免费领取。

2. 开发工具 2.1 开发IDE Intellij/Eclipse

核心知识点:

配置良好代码风格模板,包括文件注释,类注释,方法注释,缩进换行等安装使用必要的插件:代码规范检查插件(Alibaba Java Coding Guidelines),源码潜在bug检查插件(pmd),字节码潜在bug检查插件(findbugs)等2.2 工程构建 MAVEN

核心知识点:

maven 仓库maven pom.xml文件配置maven 构建的生命周期maven 插件

能力要求

学会配置maven多级工程结构能够解决工程构建中常常出现的jar包冲突等问题熟练使用maven

推荐书籍

《Maven实战》2.3 版本管理 GIT

介绍

git是一个开源的分布式版本控制系统,通过规范化的工具和流程,使得开发者之间高效协同,保持产品稳定运行3. 开发/测试框架 3.1 Spring框架体系 Spring MVC/Spring Boot

核心知识点:

Spring框架的模块组成IOC和AOP的设计思想和实现原理Bean的作用域和生命周期

参考说明

有条件地阅读spring核心模块的代码,debug Spring框架的启动和Bean服务的过程是比较好的理解spring原理的方式最新的版本更新和参考文档可以直接浏览 Spring官网3.2 orm框架 mybatis/hibernate

mybatis介绍

持久层框架,通过xml映射的方式,使得开发者主要关心sql实现即可,由框架实现从实体到java类的映射,数据访问层服务实现,访问优化等等

核心知识点:

熟练配置使用mybatis,掌握mapper xml的写法会使用mybatis-generator的mvn插件自动生成DAO层代码和xml配置理解mybatis的一、二级缓存,了解sql session创建过程和sql执行过程

推荐资料

最新的版本更新和参考文档可以直接浏览 Mybatis官网3.3 测试框架 Junit/TestNG

核心能力要求:

熟练使用Junit/TestNG进行单元测试,接口测试学会借助Mockito解决外部系统,模块依赖的mock测试学会使用maven的surfire plugin和jacoco plugin等插件,度量测例的通过率,测试代码覆盖率等指标4. 服务端中间件 4.1 key-value存储系统

典型:redis/memcache

核心知识点:

redis配置策略(持久化策略,替换算法等)redis的部署模式(standalone单机,sentinel哨兵,cluster集群),哨兵的本质是主从切换,cluster是真正的分布式部署可以线性扩展内存资源redis支持的数据结构

适用场景

分布式session存储,数据缓存,分布式锁,简单的消息队列,计数器(累加器)4.2 消息队列

典型:rabbitmq/kafka

核心知识:

AMQP协议对应消息模型中的主要概念两种集群模式对比:普通集群和镜像集群(HA)kafka基于zk的分布式拓扑结构理解kafka支持的消息的写入流程,写入模式,消息的存储模式,消息的消费方式等rabbitmq

适用场景

消息中间件一般适用于:系统之间需要高度解耦;异步传输数据(非阻塞);保证数据传输过程中数据可以持久化,解决生产端和消费端能力不一致的问题,避免峰值数据对下游服务节点的冲击等对比rabbitmq和kafka: rabbitmq主要适用数据可靠性,一致性要求比较高的场景;kafka主要适用数据吞吐量比较的场景,如日志数据的实时传输等4.3 分布式文件存储

典型:网易nos/阿里云oss

适用场景:

存储需要在分布式架构下共享的文件对象:如前端静态文件,图片资源,大文件资源等4.4 服务治理/RPC框架

典型:阿里dubbo

核心知识点

注册中心,服务注册、服务发现、负载均衡、序列化、反序列化、编码、解码等核心概念

适用场景

在相对复杂的应用服务网络中,扮演服务治理,服务解耦,负责均衡,简化服务调用方式的作用

4.5 Java Web容器

典型:tomcat/jetty等

介绍

本质上是一个servlet容器,即可以在其上运行Java Web的应用程序

4.6 Nginx

介绍

nginx本质上是一个的HTTP和反向代理服务器

适用场景

http服务器,反向代理,软负载均衡器等

4.7 关系型数据库

典型: MYSQL/ORACLE

核心知识点

索引事务与事务隔离级别存储方法触发器不同关系型数据库的SQL差异

推荐书籍

《高性能MySQL》《Oracle从入门到精通》5. 大数据存储和计算框架等

核心能力要求:

了解大数据体系整体的框架、组成熟悉各种大数据存储,计算框架,查询引擎等主要的架构、功能和适用场景能够在项目的架构过程中进行合理的大数据技术方案选型6. 其他 6.1 权限相关

介绍:

权限相关涉及到:身份认证,鉴权,权限管理等

核心知识点:

RBAC(基于角色的权限控制)模型理解OAuth 2.0的设计思想和运行流程6.2 安全相关

介绍

在后端开发中需要关注很多的安全问题,这些安全问题可能来自恶意的攻击,也可能来自系统本身的安全性和健壮性不足。防止应用安全漏洞产生的前提是理解常见的漏洞概念、原理以及产生的原因

核心知识点

水平权限和垂直权限漏洞,以及在程序开发中怎样避免SQL注入攻击(mybatis预编译可以避免)常用的限流策略CSRF 攻击XSS 攻击

6.3 日志相关

核心知识点:

Log4j、Logback、SLF4J之间的关系,应用中不可直接使用日志系统(Log4j、Logback)中的API,而应依赖使用日志框架SLF4J中的API日志的等级(error/warn/info/debug)日志的保留时间6.4 异常处理相关

核心知识点:

异常的分类,正确区分异常处理方式异常处理原则学会借助spring框架等,将异常转为对用户或者调用方更加友好的错误码和错误信息6.5 RestFul接口设计相关

介绍

restful在目前是使用较多的接口设计和服务间依赖http接口设计的主要原则,基于良好的约定规范,可以使得接口简单易懂,提高团队协作的效率

6.6 线上问题排查流程和工具

核心知识点:

系统问题排查:学会使用w/uptime、top、df、netstat、iostat以及各种可视化监控工具排查本机的负载、磁盘、内存、网络等系统问题

应用问题排查:学会依据应用系统错误日志以及jps、jinfo、jstat、jstack、jmap以及各种可视化监控工具,排查应用系统问题

数据库问题排查:学会借助mysql慢查询日志、explain以及各种可视化工具排查mysql使用过程中的各种问题

网络问题排查:学会借助telnet、ping、wget、nc等工具排查网络问题

6.7 多线程编程

核心知识点:

Java线程相关接口和类的实现和关系Java线程池线程同步,锁等6.8 网络相关

核心知识点:

掌握http协议消息体划分、连接和通信过程掌握http主要的返回状态码意义掌握https协议的连接和通信过程6.9 设计原则和设计模式

核心知识点:

单例模式策略模式代理模式观察者模式装饰模式适配器模式组合模式工厂模式模板方法模式…单一职责原则超级的丝袜替换原则依赖倒置原则接口隔离原则迪米特法则开闭原则组合/聚合复用原则七大设计原则一些常用的设计模式6.10 分布式系统设计相关

核心知识点:

Quartz,基于数据库锁的抢占式分布式定时器基于数据库基于缓存基于zookeeper一致性理论分布式事务解决方案一致性模型CAP定理BASE 理论强一致性弱一致性最终一致性eBay 事件队列方案TCC (Try-Confirm-Cancel)补偿模式缓存数据最终一致性强一致性(两段提交和三段提交模型, Paxos或者Raft算法)最终一致性SOA微服务Servless分布式系统架构设计分布式事务分布式锁分布式定时器结尾…

另外如果想要更多关于并发编程相关的面试或其他相关的知识点以及面试真题的小伙伴们可以点击这里来加入我们自行领取,本人还整理收藏了20年多家公司面试知识点以及各种技术点整理 下面有部分截图希望能对大家有所帮助。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。