#软件开发2024笔面经#阿里妈妈事业部 1h13min自我介绍介绍一下你的项目开始深挖项目,收益匪浅。照片是怎么存储的安全框架你是怎么设计的,角色与权限是怎么划分的新注册的角色怎么分配权限评论表怎么设计,怎么设计的评论的评论分页查询是怎么是实现的,用了哪些sql语句如果数据量很大查询效率会降低吗有什么提高效率的想法吗订单超时是怎么实现的有没有提高效率的方法开始八股用过哪些集合(ArrayList、HashMap等)并发框架是指什么(synchronized、锁什么的)ArrayList是线程安全的吗(不是,源码中没用到synchronized什么的,但是有modcount)ArrayList会抛出线程不安全的异常吗。(应该不会)看了源码,modcount记录着集合的修改次数,也就每次add或者remove它的值都会加1,使用迭代器遍历集合的时候同时修改集合元素会抛出异常。并发框架了解哪些(synchronized、reentrantlock,可重入读写锁,countdown等基于AQS的记不清名字了)synchronized和基于AQS的有什么区别。(一个基于虚拟机,一个基于代码api)AQS底层具体怎么实现的(基于一个抽象的双向队列,将任务请求排列成队列,有一个变量state,当state大于1时,任务队列可以执行任务,否则将被阻塞)线程池了解吗,对于阻塞队列你知道什么。(有基于arraylist的,基于linkedlist的,基于prioritylist的,可以设置阻塞队列的大小,如果不设置,默认,可能会出现outofmemory异常)索引和事务了解吗,讲一下。(索引可以提高查询数据的效率,基于b+树实现,可以实现范围查询等等)可以多个字段建立索引吗(可以,比如(a,b,c),但是只能先查a再查b再查c索引才有效,如果自查b,c就用不了索引)就是最左匹配原则对吧,那如果是范围查询,比如a>m,能用索引吗。(不行,因为只有a相等的情况下b才是有序的,a不相等b不是有序的)撕算法力扣349简单题,两个数组求交集面试官很温柔,声音很好听,会一步步引导你,答不出来会说没关系,那我换个问题,面试体验最好的一次。4.26 已挂