Java后端开发技能:
- JVM:内存模型、类加载机制、双亲委派、垃圾回收算法、垃圾回收器、空间分配担保策略、可达性分析、强软弱虚引用、GC的过程、三色标记、跨代引用、内存泄漏与溢出
- 多线程:集合、Synchronized、ThreadLocal、AQS、线程池
- JVM调优:JVM调优目的原则、JVM调优常用的工具、排查步骤、各种GC场景下的优化
MySQL:
- 数据库设计:索引数据结构、表结构设计优化
- 事务隔离:脏读、不可重复读、幻读、隔离级别
- 事务实现:原子性底层实现原理(undo log日志)、一致性底层实现原理、持久性底层实现原理(redo log机制)、隔离性底层实现原理(MVCC多版本并发控制)
- 锁机制:BufferPool缓存机制、行锁、表锁、间隙锁、死锁、主键自增长实现原理
- 索引:索引失效、聚集索引、辅助索引、覆盖索引、联合索引
- SQL执行:SQL的执行流程
- MySQL调优:SQL优化、灾备处理、异常发现处理、数据服务、数据分区分库分表、主从复制、读写分离、高可用(双主故障切换、高可用性与可伸缩性、组复制)经验
- 数据结构:简单字符串、链表、字典、跳跃表、压缩列表
- 持久化:持久化、过期策略、内存淘汰策略
- Redis与MySQL数据一致性:Redis分布式锁
- Redis集群:热点数据缓存、哨兵模式、集群模式、多级缓存架构、并发竞争、主从架构等
- Redis调优:绑核、大key优化、数据集中过期优化、碎片整理、内存大页优化、持久化优化、丢包/中断/CPU亲和性优化、操作系统Swap与主从同步优化、高可用主从同步和哨兵机制、多级缓存、冷热分离、缓存雪崩、穿透、击穿、热点缓存重构、缓存失效等
- Kafka、RabbitMQ、RocketMQ:消息可靠投递、消息丢失、消息顺序性、消息延迟、过期失效、消息队列满了、消息高可用等问题
- MQ调优:CPU、内存、磁盘、网络、操作系统、MQ本身配置优化等
Spring框架:
- SpringBean生命周期、Spring循环依赖、Spring容器启动执行流程、Spring事务底层实现原理、Spring IOC容器加载过程、Spring AOP底层实现原理、Spring的自动装配、Spring Boot自动装配、SpringMVC执行流程
- Spring Cloud:Gateway调优、Alibaba Nacos长轮询机制和服务注册发现
- ShardingSphere:读写分离一致性解决方案
系统架构设计:
- 多级缓存、动静分离、流量负载均衡、系统异步化、缓存队列、防刷与风控、数据一致、削峰填谷、限流与降级、流控与容灾等经验
- 调优经验:操作系统参数、JVM、Tomcat、MySQL、MQ、Redis、网关、系统架构等调优经验
团队管理经验:
- 可独立或领导Java团队进行代码研发
- 产品需求讨论、项目计划制定、风险控制、成本控制、问题梳理、任务分配、指导与培训开发人员、代码审核、功能设计等方面的经验