1.SpringBuilder和SpringBuffer的append底层实现
String是不可改变的对象,每次拼接都是一个新的字符串对象;
SpringBuffer继承了AbstractStringBuilder,AbstractStringBuilder构造函数默认数组大小是16位,append判断最小字符容量是否超过当前数组大小,新数组的大小默认是原数组左移1位+2,但是要超过最小字符容量(原大小+新字符串大小),把内容复制到新的数组;
SpringBuffer的append方法用了sychronized关键字修饰,实现了线程安全
StringBuffer源码分析之 append 方法_算法与编程之美-CSDN博客_stringbuffer的append方法
2.序列化和反序列化
(序列化和反序列化的底层实现原理是什么?_徐刘根的博客-CSDN博客_序列化和反序列化)
3.token
token:
Token是服务端生成的一串字符串,以作客户端请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
会话(Session)跟踪是Web程序中常用的技术,用来跟踪用户的整个会话。常用的会话跟踪技术是Cookie与Session。
cookie:通过在客户端记录信息确定用户身份,maxAge决定着Cookie的有效期,不可跨域
session:通过在服务器端记录信息确定用户身份,客户端第一次请求时创建的session对象,maxInactiveInterval决定有效期,需要JSESSIONID的Cookie或者URL地址重写
cookie和session的详解与区别 - 测试开发喵 - 博客园
跨域处理:
4.TCP的 三次握手
(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。
(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。
TCP的三次握手(建立连接)和四次挥手(关闭连接)_Met-ShiZi的博客-CSDN博客_tcp四次挥手
5.访问控制机制
public ------- ALL PLACE
protected ------ 本包 及 其他包中的子(孙)类
default -------- 本包
private -------- 本类
Java访问控制、封装_Tyrell-CSDN博客_java实现访问控制矩阵
6.令牌桶的实现
令牌桶简单实现(Java)_xxxxssss12的博客-CSDN博客_java令牌桶实现
7.static 关键字
用static声明的成员变量为静态成员变量,也成为类变量。类变量的生命周期和类相同,在整个应用程序执行期间都有效
不依赖对象,只要类被加载了,就可以通过类去访问
静态方法中不能访问非静态成员方法和非静态成员变量
Java static关键字详解_测试极客-CSDN博客_java static关键字