面经总结:
楼主自我介绍:
楼主普通211本科 ,24届 非科班 java后端开发方向 lc300道
于去年10月开始准备找实习。
于12月面上北京一家中厂,方向是搜索引擎开发方向。在这两个月的实习期间主要参与了由ES搭建的搜索引擎。也由此在这段期间学习了ES与mq的相关知识。
于2月正式开始准备下一段的实习求职过程,这一个月每周都几乎4次面试,强度虽然拉满了,但是也是真的开心,因为去年12月投简历,真是给我投绝望了,而2月以来也能约到不少的面试。
也感谢上一家公司能给我一个机会去学习新的技术栈和项目经历,但是因为种种原因,还是选择了离开。
正文开始:我只挑了些比较有价值的面试,其他没用的就不写了。
确实很多大厂都挂简历了,害感觉今年还是难,菜鸡一个,大家轻喷。
个人觉得这轮面试难度很大,面试官水平很高,也是给我很大的找漏洞的机会,感谢!
1.自我介绍
2.项目经历:我的项目经历(学校老师科研项目)主要是
3.怎么对sql语句进行的优化?慢查询日志、explain
4.慢查询日志怎么开启?具体的命令?
5.explain怎么分析?看哪些字段?type有哪些类型?你们优化到那个类型?
6.索引的理解?
7.常见的对a,b,c字段建立索引,以及相关的命中问题 (a = ,c= ) 、(b= ,c =,)(b = ,a=,c= )
8.为什么上面这些情况 有的能命中?有的不能命中?
【方便写答案(不理解的可以私信或者评论区说下)】:
抓住核心a是全局有序的,b和c是局部有序的 (a 相等,b才是有序的;b相等,c才是有序的)
以及优化器的存在
当时楼主这块答的不好,事后也是好好补了这块的知识以及顺清了下答案。
9.你们使用了redis?为什么要使用redis?
10.怎么解决的数据库缓存数据一致性问题?
11.缓存穿透、缓存击穿、缓存雪崩以及对应的解决方案?
12.你实习做了什么?为什么要用ES?
13.能跟我讲讲倒排索引和正向索引的区别吗?
14.用过docker吗?(整场面试最无语的地方来了,我根本简历就没出现过docker)
15.docker怎么拉取镜像(因为我用过,有点印象,说了poll,md他就来兴致了)
16.docker怎么改文件卷? 不会了
17.你觉得为什么要有容器技术(我真的是操了)
18.你做过JVM调优吗?能给我说说调优的过程以及要注意的细节吗?(mlgb我就说了点指令,其他不会了)
19.又来看实习项目了:说说你怎么实现mysql和es的数据一致性的?通过消息队列(当时消息队列的八股不熟,被问穿了)
20.那你知道怎么保证消息队列的数据可靠性吗?
21.怎么保证数据的顺序性?
22.真的被问麻了当时,确实没怎么准备mq,然后被问了基础:一个消息队列的消息被一个消费者消费了,那它还可以被另一个消费者消费吗?
23.tcp和udp的区别?
24.为什么不能是两次握手?三次挥手?
25.http和https的区别?
26.TLS的握手过程?
总结:当时刚开始准备面试,确实基础被问穿了,面完后也是花了很多时间在mq、数据库、jvm上面。这场面试对我启发很大。
本来以为挂了,结果2.17号,下午6点刚下班就突然接到一个用友电话,就开始了第二论面试(说实话也是蛮离谱的)
第二轮面试很快30min:
1.自我介绍
2.项目
3.索引的理解
4.怎么对sql语句进行的优化?慢查询日志、explain
5.java中线程的创建几种方式?
6.会用lamdon表达式吗?
7.hashmap的常见八股
8.集合框架中ArrayList和LinkedList的区别?
9.springboot会用吗?自动装配懂吗?
10.mysql的undolog、redolog、binlog?
11tcp三次握手和四次挥手、为什么不能是两次握手?
12.大概什么时候能来?(感觉他对我很满意)
13.能接收加班吗?
14.面试官直接自己开始介绍自己负责的业务。。。
15还有什么要问的吗?
然后他说hr会联系我。
过了两个小时,hr联系我说我通过面试了,让我填表,给我申请offer
还以为可以跳槽了,结果下周一就跟我没hc了,害估计还是太菜了被排序了,说实话,当时还伤心了好一阵子,有点想去考研了。
有一说一,这是我所有面试里面面试体验感最差最差的公司,面试官问什么问题我都没听懂,说的摸棱两可,还一副高高在上的样子,交流效果很差,我面试的过程就很想说我不想面了...
这轮面试..感觉面试官水平很一般,问了些很。。的问题:
1.自我介绍
2.项目经历
3.索引字段建立的原则?
4.java有几种循环方式。。。?
5.continue和break有什么区别?。。。。。。我。。
6.redis和mysql之间怎么解决的缓存一致性问题?
7.java中的集合框架用过哪些?能跟我讲讲hashmap吗?
8.springboot自动装配?
来写几道题吧
9.sql题:返回产品名称和每一项产品的总订单数 a了
10.sql题: 确定 Products 表中价格不超过 10 美元的最贵产品的价格
整体感觉很简单,面试官也很随意,说base是在石家庄能接收么,问什么时候能来,过两天oc了,但base确实不太喜欢,就拒了
是个女面试官,面试体验感很好,虽然她迟到了10min,但是也不妨碍我对她的评价很好。
1.自我介绍
2.项目介绍:
3.怎么进行的sql优化?
4.怎么开启慢查询日志?具体的命令?
5.explain命令具体分析哪些字段?
6.怎么解决的redis和mysql的缓存一致性?能不能把数据都放在redis中?为什么?
7.对索引数据结构的理解?
8.b树和b+树的区别?
9.聚簇索引和非聚簇索引的区别?
10.索引失效的场景?
11.缓存击穿和缓存穿透?怎么解决?
12.说说你对redis的集群的理解?我问有很多能说的,能给个方向吗?她让我说说对哨兵模式的理解?
13.redis的持久化
14.数据库的事务?特点?
15.mvcc
16.算法题:重排链表 先说想法,在做题,a ---
17.计网学了吗?三次握手和四次挥手
18.怎么排查CPU飙高?
19.进程和线程的区别?
20.进程间的通信方式?
21.反问:过去做什么业务? 对我有什么建议?
1.自我介绍
2.项目介绍(项目那一套问题,见上面,不重复了)
3.学过数据结构?你能简单跟我说下怎么翻转字符串吗?(这么简单。。。。双指针完事)
4.java中JUC了解嘛?用过哪些?能简单讲讲吗?我叫了AQS,然后顺着拓展了 Reentrantlock 和 CountDownLatch Semphere
5.了解线程池吗?ctl是什么?讲讲线程池的运行过程?(个人建议大家仔细看看execute方法,注意判断线程池的状态问题)
6.mysql的主从复制吗?
7.为什么要用es来做搜索引擎?
8.怎么保证消息队列的可靠性?
9.rabbitmq中的镜像模式?
10.怎么实现延时队列?
11.tcp三次握手?
12.jvm的垃圾回收器了解吗?
13.你刚刚说的这些垃圾回收器使用的回收算法能仔细讲讲吗?
14.spring的AOP和IOC
15.springboot自动装配?
16.linux怎么查看文件内容?
17.在学校里成绩怎么样?参加了什么社团?
18.为什么想跳槽?大概什么时候能来?
19.有什么想问我的吗?
下周一就oc了,目前打算拒了offer
这个面试不是因为内容才说kpi,而是确实它在boss上已经招聘结束了,然后这家公司本来在2.17日晚上8点与我约面,结果对方鸽了我,tmd.... 然后后面hr突然想起了我,就跟我约了27号的面试...就当练个手吧
1.自我介绍
2.项目介绍(老一套索引,数据库优化,redis的问题)
3.为什么redis这么快?
4.能讲讲BIO NIO 多路复用?
5.还有用redis实现其他场景过吗?用的什么数据类型?我讲了分布式锁
6.什么是分布式锁?
7.redission中的可重入、超时重传机制、看门狗都详细说了下
8.你对微服务的理解?(这个答的稀烂,没怎么准备微服务)
9.用过哪些微服务框架?
10.对Dubbo了解吗?
11.说说rpc和http的区别?
12.了解分库分表吗?
反问 + 提建议 (认为我的业务能力有待提升,可能做数据库研发一块偏多...)
1.自我介绍
2.项目(老一套见上面)
3.怎么解决redis与mysql 的数据一致性?
4.redis的内存淘汰策略?
5.redis的持久化?
6.虚拟内存的作用?
7.进程和线程的区别?
8.为什么redis持久化的时候需要fork一个子进程?(前面这些有点引导我的意思吧)?
9.写时复制了解吗?
10.怎么对一个反应慢的接口进行优化?
11.分库分表怎么实现?
12.快排了解吗?时间复杂度?为什么是不稳定的?怎么优化有了解吗? 手写个快排吧?(傻逼了居然快排没a出来...)
反问环节:
果然挂了,一直没消息。。。。md快排没写出来我真的操了
1.自我介绍
2.实现项目介绍:
3.es索引库的设计建议?
4.es的写入流程?
5.实习项目中es和mysql之间怎么实现数据一致性?
开始挖项目了
6.怎么保证消息的可靠性的?
7.你刚刚提到了消费者方面的消息可靠性保证,那么对于搜索服务,假如消息队列中的消息被搜索服务消费后,但是在将数据写入es的过程中,搜索服务宕机了,导致数据没能通过request写入es中,怎么办?
因为这块并不是我负责去做的,所以我在面试中也是思考了一会,给出了我的答案:我说可以将消息确认放置在数据成功写入es当中后,在返回ack给Broker,变成一个串行化的过程
10.那你觉得应该如何去处理这个问题?我当时比较紧张也没什么太好的想法(还是太菜了,求大佬给点解决方案)
我现在的想法是,es本身就是近实时性的,那么对数据一致性就不需要做到强一致性。针对上面出现的问题我觉得可以给消息设置TTL,一旦消息在规定时间内未能被成功处理,就将其投入至死信队列中,然后投入专门的死信消息库表中,后期在进行处理,进而防止其阻塞消息的处理(大佬轻喷,我真的菜)
11.说说你对mysql redis es 之间的理解?
12.倒排索引和正向索引的区别?
13了解mysql中的索引结构吗?
14.算法:K 个一组翻转链表 a了
15再写冒泡排序吧
16.能实习多久?为什么要跳槽?能接收加班么?转go有兴趣吗?
17.反问:主要做什么业务?
过了一个小时,就过了,来约3面了
1.自我介绍
2.项目介绍:
3.对索引的理解:
4.经典的abc建索引,不多说了看上面
5.你知道mysql的事务吗?怎么实现的?
6.mvcc?
7.mysql的锁机制,rr怎么解决幻读的?完全解决了吗?
8.hashmap的实现机制?
9.ArrayList和LinkedList的区别?
10.接口和抽象类的区别?
11.spirngboot了解多少?常用注解有哪些?
12.redis的缓存击穿和缓存穿透、缓存雪崩?怎么解决?
13.怎么实现的布隆过滤器?
14.jvm垃圾回收算法?垃圾回收器?
15.JUC的CAS AQS的理解?、
16.线程池的执行过程?怎么创建的线程池?
17.微服务了解多少?(踩了坑这回答得好多了)
18.怎么实现的远程调用?
19.你在学校里当学生干部吗?我说是的,面试官夸我:感觉我就像,很有气势,基础非常扎实
20.能说说tcp和udp的区别吗?
21.怎么实现的tcp可靠性?
22.stringbuilder 和 stringbuffer的区别
23.面试官直接说她这轮技术面通过了,让我等hr联系我。
下周一就oc了,但是给的确实太少了...已经拒了。
1.自我介绍
2.项目介绍:
3.sql优化步骤:
4.给你一个反应较慢的接口,怎么处理?
5.实习项目:怎么实现的mysql和es之间的数据一致性?
6.es的写入过程?
7.分词器的理解?
8.进程和线程的区别?
9.内存满了会发生什么?
10.redis的数据持久化?
11.能分别讲讲mysql 和 redis 的主从复制过程吗?
12.了解redis的多路复用吗?
13.能说说tcp和udp的区别吗?
14.tcp怎么实现的可靠性?
15、三次握手、四次挥手?为什么不能是3次挥手?
16.一些常用的linux命令的考察
17.进程和线程的区别?
18.你知道为什么redis是单线程的吗?
19.进程间的通信方式?
算法:最长公共前缀 a了
两个小时,打电话说过了,约二面
擦本来以为是hr面,结果有网友提醒了是技术面md,本来想摆烂的周末又被迫开始复习了害。
因为我的主语言是java,面试官给题,不许用java的任何库函数,自定义实现一个数据结构,并说明为什么用户要使用你设计的数据结构,最后要通过测试用例,证明你的数据结构是可用的
写的过程写出来了,但是面试官一直对我的测试案例很不满意,要求我多写点测试案例来证明是可用的,说实话我真麻了,不知道该写多少测试案例了。害,当时感觉就要寄了,有点被故意刁难的感觉吧。
第二天打电话说过了,在走流程中了。
早上被度小满搞了一下,心态有点崩吧。
1.自我i介绍
2.项目介绍(也是基本问了上面的常见问题)
3.你们是将所有数据都放入redis中吗?
4.怎么设计的缓存过期时间?我说我们当时随便设置的,因为是读多改少的场景,面试官说这个过期时间是需要结合数据分析的,需要对数据的使用频率等等进行考虑的
5.缓存过期策略?
6.调度算法有哪些?
7.说说你的实习项目吧,为什么要用es来重构搜索引擎?
8.分词器的理解?
9.es 的写入过程?
10.了解redis中的哪些数据类型?以及对应的数据结构?
11.讲讲跳表吧?说说你对它的理解?
12.来写题吧,写个快排吧
13.时间复杂度?怎么优化?
14.算法:前k个高频词,用堆顶写出来了,面试官说,他其实是希望我用快排写出来的,想看看我能不能举一反三哈哈哈,不过没啥事
15.再写一个吧:字典序排序(md写这么多算法,这回我就用的快排了)
16反问环节
过了一天,收到2面过了,约了3面
3.7号楼主已经离职回校了,预计下周返回北京。
这轮面试官一直跟我聊天:
1.自我介绍
2.项目介绍(老一套了)
3.在学校成绩怎么样?
4.为什么想跳槽?
5.undolog redolog的了解
6.为什么不把热点数据都放入redis中?
7.为什么要有虚拟内存?
8.怎么解决虚拟内存和物理地址的映射关系?
9.索引的设计原则?
10.最快入职时间?你的人生理想是什么?你对自己的职业规划是怎么样的?
11.用几个形容词评价一下自己?为什么用这几个形容词?
12.未来还想留在北京吗?
13.有什么兴趣爱好吗?在学校里有什么社团经历吗?
14.最快什么时候来报道?(说了点话有点口头offer的意思了hhh)
15.反问环节:问了问具体的业务,是否能转正(不细说了)
回学校主要是休息下,考一下6级,陪陪女朋友。下周继续回北京奋斗了,下周一再选offer吧,个人目前倾向于度小满,虽然百度背书大,但是业务确实...很边缘...哈哈哈哈哈先拿到offer再说吧。
发个面经攒攒运气吧,反正不太想冲暑期了。
同时也希望有大佬能教教我怎么去分析场景题,这块真的太菜了
继续努力吧。
也欢迎各位朋友一起讨论**********************
菜鸡一枚,求轻虐。
引流大法:
阿里巴巴,字节跳动,京东,美团,快手,新浪,搜狐,百度,网易,万集象帝先AMDIntelTI豪威芯原ADI中科芯芯海ARM国微奕斯伟海光比特大陆展税平头哥MTKZEKU海思龙芯翱捷壁仞恒玄艾为华为杰华特大疆字节燧原长鑫兆易地平线禾赛乐鑫硅谷数模复旦微星宸芯动科技全志小米联芸商汤旷视哲库芯擎地平线英伟达壁仞摩尔哲库沐曦华为中兴比亚迪闻泰华勤新华三度小满