今天小编跟大家分享关于“4年左右经验丰富的java程序员应具备哪些内容”,希望对大家有所帮助。
专业节能方面
基础:JDK 常用类的原理、源码、使用场景。
设计模式:常用几种的原理、使用场景,单例、动态代理、模板、责任链等。
数据结构:数组、链表、栈、队列、树。 网络:TCP、HTTP、HTTPS、负载均衡算法。
框架:Spring IoC 原理、Spring AOP 原理和使用、Spring 常用的扩展点、MyBatis 的核心流程。
中间件:常用中间件的核心原理与实践,并对其中的 1 到 2 个有深入的学习,Redis、Kafka(RocketMQ、RabbitMQ)、Dubbo、Zookeeper。
数据库(MySQL):索引原理、隔离级别、锁机制、分库分表、慢 SQL 定位及优化、线上问题解决。
Netty:NIO 原理、核心组件、I/O 多路复用(epoll)、零拷贝。
JVM:运行时数据区、垃圾回收算法、垃圾回收器(CMS、G1)、常用配置参数、线上问题定位及解决。
稳定性保障:隔离、限流、熔断、降级等。
Linux:基本命令的使用、快速定位和排查问题。
分布式理论:C
AP、BASE、2PC、3PC、TCC。
项目方面
能独立完成一个复杂模块的需求分析、方案设计和落地实现。
能不断思考,寻找更优的设计和解决方案,积极优化慢 SQL、慢服务。
具备排查问题的能力,遇到线上问题能及时定位和修复上线,例如:数据库死锁、服务器宕机、服务器 Full GC 频繁等。 具备难题攻关的能力,能不断解决项目遇到的挑战,能给予初级工程师技术上的指导。
初步具备带领团队(1-3人左右)的能力,能合理分配需求,做好进度把控、风险评估、Code Review。