要点提纲
要点提纲
1. 网络
1.1 OSI 七层模型
- 物理层:比特流传输,网线、光纤、网卡。
- 数据链路层:成帧、MAC 地址、交换机、以太网协议。
- 网络层:IP 地址、子网、路由、ICMP、ARP。
- 传输层:TCP(可靠,面向连接)、UDP(无连接、不可靠,低延迟)。
- 会话层:建立、管理、终止会话。
- 表示层:数据表示、加密解密(SSL/TLS)、编码(Unicode)。
- 应用层:HTTP、HTTPS、FTP、DNS、SMTP、SSH。
1.2 TCP/IP 四层模型
- 网络接口层:驱动、网卡、MAC。
- 网络层:IP、ICMP。
- 传输层:TCP、UDP。
- 应用层:HTTP、DNS、SMTP。
1.3 TCP 机制
- 三次握手:SYN、SYN+ACK、ACK → 同步序列号,建立可靠连接。
- 四次挥手:FIN/ACK → 关闭通道,TIME_WAIT 等待 2MSL。
- 状态机:SYN_SENT、ESTABLISHED、FIN_WAIT、CLOSE_WAIT、TIME_WAIT。
- 拥塞控制:慢启动、拥塞避免、快重传、快恢复。
- 流量控制:滑动窗口。
- 常见问题:粘包/拆包、SYN 攻击。
1.4 UDP
- 无连接、无重传,适合实时通信(视频、语音、DNS)。
1.5 HTTPS/TLS
- 握手:证书验证、公钥交换、对称密钥协商。
- TLS 版本:1.2、1.3(前向保密 PFS)。
- 证书链、CA、CRL/OCSP。
1.6 常用网络工具
- ping、traceroute、tcpdump、wireshark、ss、netstat、iftop。
2. Linux
- 常用命令:top、ps、df、du、netstat、ss、lsof、journalctl。
- 权限管理:rwx、chmod、chown、ACL、SUID/SGID/sticky bit。
- 进程管理:kill、jobs、fg、bg、nohup、tmux。
- 文件系统:ext4、inode、硬/软链接、挂载。
- IO 模型:阻塞、非阻塞、I/O 多路复用(select、poll、epoll)。
- 网络排查:ping、tcpdump、iftop。
- 性能调优:ulimit、sysctl、内存管理、I/O 调度。
- systemd:systemctl、服务管理。
- 安全:SELinux、AppArmor。
3. MySQL
3.1 慢查询优化
- slow_query_log、EXPLAIN、performance_schema。
3.2 索引
- B+ 树结构,聚簇索引 vs 非聚簇索引。
- 分类:主键、唯一、普通、组合(最左匹配)、全文索引。
- 覆盖索引 vs 回表。
- 失效场景:函数操作、隐式转换、like %xxx。
3.3 事务
- ACID。
- 隔离级别:读未提交、读已提交、可重复读(默认)、串行化。
- 并发问题:脏读、不可重复读、幻读。
- MVCC:undo log + read view + 隐藏列。
3.4 锁
- 表锁、行锁。
- 共享锁、排他锁。
- 间隙锁、Next-Key 锁。
- 乐观锁、悲观锁。
3.5 存储引擎
- InnoDB:事务、行锁、MVCC。
- MyISAM:不支持事务,表锁,读快写慢。
3.6 日志
- redo log:保证持久性。
- undo log:回滚、MVCC。
- binlog:主从复制、恢复。
4. Java
4.1 基本类型与包装类
- 八种基本类型。
- 自动装箱/拆箱,缓存范围(Integer -128~127)。
4.2 Object 类
- equals、hashCode、toString、clone、wait/notify。
4.3 String
- 不可变性、String Pool。
- StringBuilder vs StringBuffer。
4.4 异常
- Checked vs Unchecked。
- try-with-resources。
4.5 并发
- synchronized、ReentrantLock、CAS、原子类。
- ThreadLocal(内存泄漏风险)。
- Thread、Runnable、Callable。
- 线程状态:NEW、RUNNABLE、BLOCKED、WAITING、TIMED_WAITING、TERMINATED。
- 线程池:ThreadPoolExecutor(核心数、最大数、队列、拒绝策略)。
4.6 集合
- List:ArrayList(数组)、LinkedList(链表)。
- Set:HashSet、TreeSet。
- Map:HashMap(哈希表+红黑树)、LinkedHashMap、TreeMap。
- 并发集合:ConcurrentHashMap(CAS+分段锁)、CopyOnWriteArrayList。
4.7 JVM 内部结构
- 运行时内存区域:堆、方法区(元空间)、虚拟机栈、本地方法栈、程序计数器。
- 类加载过程:加载、验证、准备、解析、初始化。
- 双亲委派模型:避免类冲突。
- OOM 类型:
- Java heap space。
- Metaspace。
- StackOverflowError。
- Direct buffer memory。
4.8 GC(垃圾回收)
- 垃圾回收算法:引用计数、标记清除、标记整理、复制算法。
- 分代回收:新生代(Eden+Survivor)、老年代。
- 收集器:Serial、Parallel、CMS、G1、ZGC、Shenandoah。
- Minor GC、Full GC。
5. Web
- HTTP:请求方法、状态码、Header。
- HTTPS:TLS 加密。
- Cookie、Session、Token。
- RESTful API 设计。
- 跨域:CORS、JSONP。
- 缓存:Cache-Control、ETag、Last-Modified。
- WebSocket、SSE、长轮询。
6. 框架
6.1 Spring
- IoC 容器、Bean 生命周期。
- AOP:JDK 动态代理、CGLIB。
- 常用注解
- 原理
- 启动流程
6.2 Spring Boot
- 自动配置原理:@EnableAutoConfiguration。
- Starter 模块化。
- 配置文件优先级。
- Actuator:健康检查、监控。
- 常用注解
- 原理
- 启动流程
6.3 Spring MVC
- DispatcherServlet 流程:HandlerMapping、HandlerAdapter、ViewResolver。
- 拦截器、异常处理。
6.4 MyBatis
- SQL 映射、动态 SQL。
- 一级缓存、二级缓存。
- N+1 问题。
7. 分布式
7.1 Spring Cloud
- 服务注册发现:Eureka、Nacos。
- 负载均衡:Ribbon、Feign。
- 网关:Spring Cloud Gateway。
- 熔断限流:Hystrix、Sentinel。
7.2 分布式核心要点
- 雪花算法:分布式唯一 ID。
- JWT、OAuth2:无状态认证。
- Redis:
- 数据结构:String、Hash、List、Set、ZSet。
- 持久化:RDB、AOF。
- 集群:哨兵集群、完全集群。
- 分布式锁:SETNX+过期时间,Redisson。
- 缓存问题:穿透、击穿、雪崩。
- MQ:
- 场景:削峰填谷、解耦、异步。
- Kafka、RocketMQ、RabbitMQ。
- 消费语义:at-most-once、at-least-once、exactly-once。
- 分布式事务:
- 2PC、XA。
- Saga、补偿。
- Seata。
- CAP、BASE 理论。
- 一致性协调:Zookeeper、etcd。
- 可观测性:ELK、Prometheus、Grafana、Jaeger。
8. 运维/容器化
- Docker:镜像、容器、Dockerfile。
- Kubernetes:
- Pod、Deployment、Service、Ingress。
- ConfigMap、Secret、StatefulSet。
- 部署策略:滚动更新、蓝绿、金丝雀。
- CI/CD:Jenkins、GitLab CI、ArgoCD。
- 高可用:多 AZ、故障切换、自动伸缩。
- 监控与告警:SLO/SLI/SLA,Prometheus+Grafana。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 浮生若梦!
