# 后端开发
# 1. 编程语言
- Java基础:Java语法、面向对象编程(OOP)、异常处理、泛型、集合框架。
- 多线程与并发编程:线程、线程池、同步、锁机制(ReentrantLock、synchronized)、并发工具类(如CountDownLatch、CyclicBarrier)。
- JVM基础与优化:JVM内存模型、垃圾回收机制、类加载机制、性能调优(JVM参数调整、垃圾回收调优)。
# 2. Web开发框架
- Spring框架:
- Spring Core:依赖注入(DI)、控制反转(IoC)。
- Spring MVC:用于构建Web应用程序的MVC架构。
- Spring Boot:简化Spring应用开发的快速入门框架。
- Spring Data JPA:简化数据访问,提供与数据库的交互。
- Spring Security:提供安全认证和授权的解决方案。
- Spring Cloud:构建微服务架构的工具集。
# 3. 数据存储与操作
- 关系型数据库:如MySQL、PostgreSQL,掌握SQL语句、数据库设计、索引优化。
- NoSQL数据库:如MongoDB、Redis,适用于高并发和大规模数据的处理。
- ORM框架:如Hibernate、MyBatis,用于Java对象与数据库之间的映射。
- 数据库连接池:如HikariCP,用于提高数据库访问性能。
# 4. 消息队列
- Kafka:分布式流处理平台,适合高吞吐量的消息处理。
- RocketMQ:轻量级消息队列系统,适合复杂消息路由。
- ActiveMQ:适用于传统的消息中间件需求。
# 5. 分布式系统与微服务
- 微服务架构:了解如何拆分单体应用为多个服务(Spring Cloud、Dubbo等)。
- 服务注册与发现:如Eureka、Consul。
- 负载均衡:如Ribbon、Nginx。
- 服务网关:如Spring Cloud Gateway、Zuul,用于统一管理API请求。
- 分布式事务:如Seata,用于处理跨服务的事务。
- 分布式缓存:如Redis、EhCache,用于提高系统性能和减少数据库压力。
# 6. API设计与开发
- RESTful API:了解REST架构风格,熟悉GET、POST、PUT、DELETE等HTTP方法。
- GraphQL:一种更灵活的API查询语言。
- API文档工具:如Swagger,用于自动生成API文档。
# 7. 开发工具与环境
- 构建工具:Maven或Gradle,用于项目构建和依赖管理。
- 版本控制:Git,熟悉Git分支管理、合并、冲突解决等操作。
- 集成开发环境(IDE):如IntelliJ IDEA或Eclipse。
- 容器化与虚拟化:Docker,用于创建轻量级的、可移植的开发环境。
- 持续集成/持续交付(CI/CD):如Jenkins,用于自动化构建和部署。
# 8. 性能优化
- 数据库优化:如索引优化、SQL查询调优、避免过多的数据库连接。
- 代码优化:如减少不必要的对象创建、尽量使用高效的数据结构。
- 缓存使用:如使用本地缓存或分布式缓存(Redis)提高读取性能。
- 压力测试与性能监控:如JMeter、Prometheus、Grafana,用于监控应用的性能指标。
# 9. 安全性
- 身份验证与授权:如使用OAuth 2.0、JWT进行用户认证和授权。
- 数据加密:传输中数据的加密(如HTTPS、SSL)、存储时的加密(如AES、RSA)。
- 防范常见漏洞:如SQL注入、XSS(跨站脚本攻击)、CSRF(跨站请求伪造)。
# 10. 测试
- 单元测试:如JUnit、TestNG,用于测试Java代码的单元。
- 集成测试:如Spring Test,用于测试多个模块的集成。
- Mock框架:如Mockito,用于模拟测试环境中的依赖对象。
# 11. 日志与监控
- 日志框架:如Logback、SLF4J,用于记录应用运行中的日志。
- 分布式跟踪:如Zipkin、Jaeger,用于跟踪微服务间的调用链。
- 监控工具:如Prometheus、Grafana,用于监控系统性能和运行状态。