【字节跳动】9-22秋招测试开发一面面经+投票收集
1、接口如何保证幂等
- 对于“删除、查询”操作,天然支持幂等;对于“查询、增量修改”需要保证幂等。
- token+缓存机制:数据提交前要向服务的申请token,提交后后台校验token,同时删除token,生成新的token返回。redis要用删除操作来判断token,删除成功代表token校验通过,如果用select+delete来校验token,存在并发问题,不建议使用
- 锁机制:乐观锁、悲观锁(悲观锁使用时一般伴随事务一起使用)、分布式锁(对于分布式系统)
- select + insert:并发不高的后台系统,或者一些任务JOB,为了支持幂等,支持重复执行,简单的处理方法是,先查询下一些关键数据,判断是否已经执行过,在进行业务处理,就可以了(核心高并发流程不要用这种方法)
- 唯一主键(要求非自增):当表已经存在唯一主键,并发时新增报错时,再查询一次就可以了,数据应该已经存在了,返回结果即可。
2、数据库索引种类
按数据结构分类可分为:B+tree索引、Hash索引、Full-text索引。
按物理存储分类可分为:聚簇索引、二级索引(辅助索引)。
按字段特性分类可分为:主键索引、普通索引、前缀索引。
3、索引数据结构
4、B+树特点
5、索引失效的情况
https://segmentfault.com/a/1190000021464570
6、如何查看语句是否命中索引
- 先通过 Explain 命令来分析低效SQL的执行计划,在SQL语句前加上‘Explain ’,如explain select * from adminlog。
- 再看type类型,如果是‘all’,则说明是全表扫描。除了all之外,其他的type都可以使用到索引,除了index_merge之外,其他的type只可以用到一个索引。
- key用来查询真正使用到的索引,key_len用来用于处理查询的索引长度。
- type依次从好到差:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,ALL
7、如何实现分页查询
LIMIT + OFFSET;
https://www.liaoxuefeng.com/wiki/1177760294764384/1217864791925600
8、类的加载过程
9、AOP的原理
JDK动态代理、cglib代理
https://bbs.huaweicloud.com/blogs/detail/164988
10、HTTP头部的内容
- 通用头至少包括:是否缓存Cache-Control、是否长连接Connection;
- 请求头至少包括:接收类型Accept、接收字符集Accept-Charset、接收编码方式Accept-Encoding、浏览器标识User-Agent、服务器域名Host、来源Referer;
- 实体头至少包括:重定向地址Location、响应编码方式Content-Encoding、响应类型Content-Type;
https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers
11、SpringBoot中Bean的创建模式
- singtone单例模式
- prototype多例模式
12、线程池种类
https://blog.csdn.net/w05980598/article/details/79425071
13、创建线程池的关键参数
https://juejin.cn/post/6844903554986049543
14、TCP的CLOSE_WAIT和TIME_WAIT出现场景
https://www.cnblogs.com/cangqinglang/p/13185825.html
15、CLOSE_WAIT和TIME_WAIT过多的影响
- 1. 占用系统内存
- 2. 如果连接数满了就不能对相应的对段端口创建连接了
- 3. 假设你的程序会去连接另一个服务,而未正常关闭,那么可能导致你的程序超过最大连接数的时候报异常,引起连锁反应甚至导致程序崩溃
- 4. 网上有说法可能会导致系统扫描端口连接,影响cpu,但是测试中未发现这个问题
16、如何解决15题的情况
https://blog.csdn.net/weixin_44718794/article/details/108649255
17、创建对象的方式(除了new)
- 使用new关键字
- Class对象的newInstance()方法
- 构造函数对象的newInstance()方法
- 对象反序列化
- Object对象的clone()方法
https://www.jianshu.com/p/b671b5c62609