1 存储区域
- 元空间:类信息、静态变量、全局变量(包含方法区)
- 堆:对象、常量
- 栈:局部变量
2 Spring Mvc流程
- 前端控制器:捕获请求,转发到处理映射器
- 处理映射器:解析请求找到指定处理器(controller)
- 处理器:处理具体业务逻辑(method)
- 视图解析器:将处理结果生成 View 视图
- 前端:解析视图渲染
3 类加载机制
- 加载:加载class到方法区
- 检查:验证class是否正确
- 分配空间:赋值类变量分配空间初始化
- 引用替换:常量池符号引用替换为直接引用
- 构造器初始化:执行类构造器初始化
4 Bean 生命周期
- 实例化:对bean进行实例化
- 填充属性:为实例化 bean 的成员属性填充默认值
- 执行方法:执行一系列的方法构建bean的名称、工厂等
- 注入:注入bean使用
- 销毁:销毁bean
5 设计模式规范
- 单一职责:一个类只有一个职责
- 开闭原则:对扩展开放,对修改封闭
- 里氏代换:任意父类可以出现的地方,子类都一定可以出现
- 抽象编程:对抽象进行编程,不要求对实现进行编程
- 接口隔离:将不同的功能定义在不同的接口中(单一职责)
- 迪米特法则:对象尽可能少地与其他对象发生相互作用(单一职责)
6 TCP 三次握手
- 客户端——>服务端;(请求报文)
- 服务端——>客户端;(确认报文)客户端知道双通道成功
- 客户端——>服务端;(确认报文)服务端知道双通道成功
7 TCP 四次挥手
- 客户端——>服务端:终止报文
- 服务端——>客户端:确认报文,客户端断开
- 服务端——>客户端:终止报文
- 客户端——>服务端:确认报文,服务端断开
8 Http 的传输流程
- 地址解析:DNS 解析地址获取IP、协议、端口等
- 封装 HTTP 数据包:解析的信息——> HTTP 请求数据包
- 封装 TCP 数据包:HTTP 请求数据包——> TCP 数据包
- 建立TCP连接:三次握手
- 请求:客户端发送请求
- 返回:服务端处理返回请求
- 断开TCP连接:服务器根据请求头长连接判断是否要断开连接
9 Https 的加密流程
- 客户端请求证书
- 服务端返回证书:包含域名、证书公司、公钥、加密算法等
- 客户端验证证书:生成对称密钥,使用公钥加密密钥再发送给服务器
- 服务器使用私钥解密:获取并使用密文中的客户端私钥加密数据返回客户端