前言:
整理了一些Java基础流程图/架构图,做一下笔记,大家一起学习。
1.spring的生命周期
Spring作为当前Java最流行、最强大的轻量级容器框架,了解熟悉spring的生命周期非常有必要;
image.png
- 首先容器启动后,对bean进行初始化
- 按照bean的定义,注入属性
- 检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给bean,如BeanNameAware等
- 以上步骤,bean对象已正确构造,通过实现BeanPostProcessor接口,可以再进行一些自定义方法处理。 如:postProcessBeforeInitialzation。
- BeanPostProcessor的前置处理完成后,可以实现postConstruct,afterPropertiesSet,init-method等方法, 增加我们自定义的逻辑,
- 通过实现BeanPostProcessor接口,进行postProcessAfterInitialzation后置处理
- 接着Bean准备好被使用啦。
- 容器关闭后,如果Bean实现了DisposableBean接口,则会回调该接口的destroy()方法
- 通过给destroy-method指定函数,就可以在bean销毁前执行指定的逻
2.TCP三次握手,四次挥手
tcp的三次握手四次挥手是每个程序员都应该熟悉的。
image.png
三次握手:
- 第一次握手(SYN=1, seq=x),发送完毕后,客户端进入 SYN_SEND 状态
- 第二次握手(SYN=1, ACK=1, seq=y, ACKnum=x+1), 发送完毕后,服务器端进入 SYN_RCVD 状态。
- 第三次握手(ACK=1,ACKnum=y+1),发送完毕后,客户端进入 ESTABLISHED 状态,当服务器端接收到这个包时