菜鸡一枚,在疫情期间面了广州的BIGO和唯品会,两家公司到HR面说不招22届的,然后就没找了。并且苏州华为离宿舍只有几站路,本来以为躺着都能进华为,结果今年苏州华为压根不怎么招见习生,拖到返校想着不能和华为继续拖下去了,重新审视了一次简历,发现项目上只有一个简单秒杀和一个CRUD的项目,然后花了大半个月做了两个项目,应对完接踵而来的考试。然后开始投简历找实习,此时大概是6月28号。
到了7月份,朋友要么不实习或者早就有了offer,此时导师两次询问我实习情况和内推(但是我太菜了,内推失败了),一直到7月7日都没收到offer,这段时间每天失眠,不过7月7日的时候,连续几天收到了几个offer,先后顺序应该是京东(数科、零售)、滴滴(北京、杭州)、爱奇艺(上海、上海)、百度、金仕达
由于我面试都是没有录音的,也很少复盘(菜鸡的本质),所以都是回忆版,尽最大可能的记录一下。
在牛客网上投递的,面试体验真的很好,最后由于一些个人原因没去成,感到有点内疚。
限流怎么做的(令牌桶,令牌桶实现挺简单的,但是很少人做了秒杀的人会了解,特别是慕课那个项目)
zookeeper怎么实现注册、发现的(临时节点存储ip+端口+负载均衡策略)
为什么不选择Redis作为注册中心(zookeeper临时节点自动宕机自动清除)
ZAB算法讲一下(ZAB是paxos的改版,Mysql是paxos、redis sentinel是raft、zookeeper是ZAB、ZAB的具体实现)
分布式事务的几种解决方案(2PC,3PC,TCC,基于消息,然后顺带讲了一下优缺点)
JVM全套(内存区域、GC算法、垃圾收集器、双亲委派机制、类加载机制)
你看过《Java编程思想》,评价一下这本书(博大精深,内容太多,记不住,但是某些比如面向对象、static和类绑定这些还是留下了深刻印象
《Java编程思想》当中介绍的设计模式有哪些(设计模式我不熟悉,但是IO中采用了适配器模式)
Redis数据结构(String、Hash、Set、Zset、List、Hyperloglog、Bitmap、Grospatial、BloomFilter)
Mysql聚蔟索引和非聚簇索引的区别(讲了Innodb和Myisyam的区别,文件结构,和两种索引的区别)
(当时没想出来,事后诸葛觉得因为聚蔟索引文件太大了,并且改变数据的时候效率比较低,要不我天天用)
说一下秒杀模块,怎么进行优化的(主要基于Redis做优化,加入二级缓存,还有一些防刷限流的措施,后续也加入了消息队列,但是对QPS的提升不大)
哨兵集群介绍一下(基于Raft算法,介绍了选举过程,然后指出我这使用的是分片集群)
分片怎么保障高可用?(将不同的数据hash到不同的库,然后通过bus自动访问到相应的数据库,每个分片再配置主从保障容错性)
Redis分布式锁怎么实现的(setnx+setex,但是这样子不是原子性的,可以采用LUA脚本进行优化,或者直接使用Redisson框架)
你知道Zookeeper的分布式锁实现方式吗?(临时节点,如果服务器挂了,锁会自己消失)
怎么保持缓存数据和数据库数据的一致性(没加入消息队列之前,这两个操作是一致的,加入消息队列之后,先预减库存,成功的话在通过消息队列减数据库库存,这里数据库使用了唯一索引来保证多次下单的幂等性,如果数据库减库存失败,会把缓存当中的库存加回去)
你是部署到服务器上的吗,所有东西都装在一块?阿里云服务器对学生是不是有优惠?(是的,学生十块钱一个月?面试官:竟然还要钱?)
四种事务隔离级别,mysql默认隔离级别(读未提交,读已提交,可重复读,序列化,读已提交和可重复读是通过mvcc版本控制机制实现的)
读已提交的情况下,事务A读到的事务永远是事务A吗?(猜了一下应该不是,应该是根据版本链找到上一条已提交的事务(面试官:不用紧张,对于实习生来说这里已经超纲了))
我们来说说这个RPC项目吧,怎么实现场链接的(Netty保证的,应该是使用了TCP的长连接特性)
粘包半包怎么解决的(LineBased和LengthBased,我是用的是LineBased)
为什么要使用LineBased,怎么分割的(/r/n,当时没有考虑太多,觉得这个比较简单)
如果用户输入/r/n怎么办(计划后续重构的时候改为LengthBased)
19 redis不可以吗?(也可以,但是redis需要我自己去维护这个provider是否还存活)
怎么实现负载均衡策略的(我只做了最简单的轮询、加权、随机,通过在zookeeper中配置,然后将引用按照权重将Channel的引用加入到一个List当中)
怎么实现透明调用的(自定义一个注解,然后在BeanPostProcesser中拦截使用了这个注解的接口,然后使用Cglib动态代理进行远程调用)
如何实现异步调用的?(将Future储存起来,再新建一个线程去维护这个Future的状态)
(讨论了挺久的,我还是没回答上来)。后续整理了一下,感觉可能是当时我没理解到位想问的问题,放在这里:
你这个RPC有什么地方需要改进的,和我说一下(还好我真的总结一下,写在git上边了,然后打开git给面试官看了..)
嗯,行,还总结了一下,那我再看看你另一个项目,说一下分布式事务的几种方式吧(2pc、3pc、tcc、基于消息)
项目方面先问到这里,下面我来考考你的基础吧,你知道什么排序算法?(ps:已经把我象奴的底裤都扒下来了TAT。选择、冒泡插入、堆排、快排、归并、希尔、基数)
31.(写的过程中)你有没有博客?给我看看(我有,但是没写什么东西,但是面试官还是要,就把这个博客的地址发给他了)
(写的过程中)怎么那么多关于docker的(我最近在把微服务用docker重新部署)
(写的过程中)看到你有个唯品会的面经,最后拿到offer了吗?(hr面挂了,只招应届的。那是我疫情期间随便投的了,那时候还没开学)
(然后应该看到我关于redis的笔记了)你这redis写了这么多,刚才介绍怎么没说呢?(我真的不知道该怎么说啊TAT)
你说一下哈夫曼编码(好久没用了,一时没想起来,后来想起来是用于压缩算法的那个)
常规的JVM、HashMap、JUC问题,不重复了,其实二面这种情况下,三面大多数都是重复的问题,可能是一面时间太短了。
这个部门给人的感觉也非常好,特别是二面面试官的方式,让我在后续的面试中可以吧问题回答的更完善
数科的面试比较短,加起来大概四五十分钟,问题也比较简单,可能部门扩张比较缺人
有好多东西好久没复习了,算是发挥最差的一次面试吧,特别难受,回去也把网络和系统复习了一遍
二面之后知道肯定挂了,但是HR面也不好意思不接,结果愣是面了四十多分钟,体验极差。
当时知道肯定凉了,反问的时候就问了:Java不是用来操控传输层以下层级的吧,怎么连集线器在哪一层都要掌握?
已经凌晨2点多了,看来今天是失眠了,反正睡不着,写篇日记总结一下我最近面试经历吧。 2019年5月1日办理了离职手...
一、心态 心态很重要! 心态很重要! 心态很重要! 重要的事情说三遍,这一点我觉得是必须放到前面来讲。 找工作之...
黑色的海岛上悬着一轮又大又圆的明月,毫不嫌弃地把温柔的月色照在这寸草不生的小岛上。一个少年白衣白发,悠闲自如地倚坐...
渐变的面目拼图要我怎么拼? 我是疲乏了还是投降了? 不是不允许自己坠落, 我没有滴水不进的保护膜。 就是害怕变得面...
感觉自己有点神经衰弱,总是觉得手机响了;屋外有人走过;每次妈妈不声不响的进房间突然跟我说话,我都会被吓得半死!一整...
- 本文固定链接: https://douyinkuaishou.cc/?id=27733
- 转载请注明: admin 于 抖音快手 发表
《本文》有 0 条评论