摘要:
权限管理 如果是在service层或者dao层,直接使用spring的AOP切面编程 如果是在controller层,因为需要request或response,因此一般采用filter功率器或者spring的Interceptor拦截器。 前置知识 DispatchServlet流程 Filter、 阅读全文
摘要:
快手 自我介绍 实习项目、背景、需求介绍 InnoDB优点 外键 行锁 事务 聚簇索引 mvcc 使用场景 MyISAM索引底层是什么结构 b+树,遍历层级短,io次数少 B树和B+树区别 非叶子节点是否存数据 为什么选择B+树不选择B树 单位时间查找效率高,io次数更少 MySQL如何支持事务 使 阅读全文
摘要:
美团优选 ArrayList和LinkedList区别 底层数据结构不同,链表和数据 对随机读的支持不同 容量不同 使用场景不同,ArrayList多读少写,LinkedList少读多写 HashMap八股(数据结构,扩容,链表和红黑树转换) 死循环 链表散列 扩容 链表引发 链表长度大于8,判断是 阅读全文
摘要:
高并发新增数据唯一 悲观锁 在插入前先判断数据是否存在,不存在再进行插入操作,存在返回id RR事务隔离级别加悲观锁,此事务隔离级别下悲观锁会加临键锁,会阻止其他线程的其他操作(防止幻读),以此实现并发的新增数据唯一 线程并发时,会阻塞其他线程的读写操作,并发事务只会有一个执行成功 思路 //悲观锁 阅读全文
摘要:
算法之排序 八大排序 插入排序 插入排序是选择未排序部分首个元素,然后遍历已排过序的部分,插入对应的位置上。 直接插入排序 思想 将一个记录插入到已排序好的有序表中,从而得到一个新,记录数增1的有序表。即:先将序列的第1个记录看成是一个有序的子序列,然后从第2个记录逐个进行插入,直至整个序列有序为止 阅读全文
摘要:
BIGO 实习做了什么 介绍实习的项目 有哪些数据结构 数组 arraylist 栈 stack 队列 blockqueue 链表 linkedlist 树 TreeSet 散列表 HashSet 链表和数组的区别 arraylist 底层为数组,判断add扩容1.5倍,设置初始大小。 多读少写 l 阅读全文
摘要:
字节跳动 自我介绍 项目相关 Java中常用的集合类 有一组数据,需要按照顺序对它进行加密,如果用集合做的话你会选哪个集合?比如一个数组,其元素本身无序,每个元素是字母或者数字都行,对它从小到大进行排序,你会选哪个集合去存储? linkedhashmap treemap Java中线程同步的方案有哪 阅读全文
摘要:
接口设计 整体思路 接口设计大致分为四个部分组成:接口地址(url)、接口请求方式(get、post等)、请求数据(request)、响应数据(response) 接口地址 请求地址一般项目都类似,就是需求上的单个实体相关的方法都在一个类中,这样也方便后续维护。 接口请求方式 主要的参数提交方式是p 阅读全文
摘要:
分页设计 普通分页 内存分页 内存分页,也叫做逻辑分页。就是从数据库中寻找出所有符合条件的数据记录,然后在逻辑层进行分页操作。 分页请求类 @Data public class PageReq implements Serializable { @NotNull(message = "page 不能 阅读全文