Redian新闻
>
覆盖全面的美团一面,一小时40分钟

覆盖全面的美团一面,一小时40分钟

科技

你好,我是yes。

上周一位读者给我发了他最近秋招美团的面试题,大概面了一小时40分钟,他说题目答的还行,只不过智力题的话没答好,对校招来说这就有点悬了,所以校招的小伙伴除了技术题,智力题也要好好准备下~

这篇文章,我把这些题分享一下,大致可以分为计算机网络类、Java基础类、JVM类、redis、mysql,最后还有个智力题,可以看到涉及的知识点还是比较广的,就少了个操作系统的,JVM相关较多

不过之前就听说,美团特别喜欢问 JVM 相关的。

先列举下题目,然后我会就个别题目分析一下。

计算机网络类

  1. 为什么要三次握手,四次挥手
  2. 客户端挂了的话,后续流程怎么处理
  3. tcp状态码之4xx 和5xx
  4. seesion  存在于哪里? 说说cookie 和 token

Java 基础类

  1. hashcode 和 equals ,对象相等  hashcode 一定相等吗?
  2. final finilize finally
  3. BIO AIO NIO 区别
  4. String 为什么不可变
  5. Integer 默认的范围值
  6. 集合遍历删除可以吗?
  7. ArrayList中的数组为什么用transient进行修饰?
  8. 线程池的退出过程
  9. 线程池队列已经满了,队列已经满了会怎样
  10. 单例模式 dcl 的介绍
  11. synchronized、 aqs、volidate
  12. cas aba问题

JVM

  1. 服务类变多对整体启动性能的影响有哪些?
  2. 不会 oom 的区域?
  3. 内存分配的方式?
  4. 访问对象的访问方式
  5. 用过什么垃圾回收器
  6. 垃圾回收算法有哪些
  7. 老年代引用新生代,除了 gc root 还用什么?
  8. 出现以下几种情况的话,说明那里出问题 ?

redis

  1. 为什么用 redis ,优点何在?
  2. 缓存穿透和缓存雪崩

mysql

  1. 说下表索引执行过程
  2. 索引怎样会失效?
  3. 什么情况会走索引?
  4. 大于或者等于的范围查询一定会使得索引失效吗?
  5. 说下事务中的二阶段提交
  6. 说下 change buffer

智力题

  1. 8个球,有7个一样重,快速找其中的一个
  2. 两次都是女孩的概率

解答部分

上面这些题目,基本上我的面试仓库都包含了,大部分就不作解答的,大家可以自行去网站上查找

仓库地址:https://yessimida.gitee.io/interview-of-legends/#/?id=interview-of-legends

有个别没提到的,或者稍微难一点的,我这里拿出来提下:

ArrayList中的数组为什么用transient进行修饰?

我们都知道 transient 标记的字段代表不序列化,而 ArrayList 的数组用 transient 当然就表示其内部的数据不序列化,那岂不是数据要没了?

并不是的。之所以这样标记,是因为我们数组的实际大小会大于真正的元素量,比如你的数组长度是10,实际上里面就只有5个元素。

如果正常序列化的话,那会把空值也给序列化了,所以为了只序列化实际有值的元素,ArrayList 用 transient  标记了 elementData字段,然后再实现了 writeObject 和 readObject 方法,里面的实现逻辑是只会序列化实际存在的元素。

简单来说就是为了避免多余元素的序列化,用 transient  标记了 elementData 字段避免使用默认的序列化方式,定义了  writeObject 和 readObject 实现了自定义的序列化方式。

老年代引用新生代,除了 gc root 还用什么?

这个场景就是假如当前要进行新生代 GC, 那可能存在老年代到新生代对象的引用,这部分如果要全区域扫描老年代,效率就低了,所以弄了个记忆集(Remembered Set)来优化这个跨代引用场景。

而记忆集的实现,一般用卡表,简单理解就是不是精确到具体老年代哪个地址对新生代有引用,而仅仅是一块区域对新生代有引用,这样记忆集就不会那么大,扫描起来也不会那么多,毕竟一个区域可能有好多都引用的新生代,还能合并一起标记了。

出现以下几种情况的话,你觉得是出了什么问题 ?

结合 5 点一起来看:CPU 不忙了,gc有抖动,但是年轻代基本稳定,老年代内存一直在变,说明对象应该是直接进去老年代,但是这些对象的生命周期又比较短,所以老年代内存涨涨涨,GC 了之后又下来,然后又涨涨涨,这就叫抖动

那什么样的对象不进新生代而是直接到老年代?

是大对象

跟着 GC 抖动的同时,线程数也在抖动,那说明肯定是哪块业务一次请求,new了很多线程,线程里new 了很多大对象,所以老年代大小就上去了, GC 就开始操作了。

等这波线程任务执行完之后,线程就关闭了,对象也就可以回收了,GC操作完之后,老年代大小又降下来了。

基本上就是这么个情况。

最后

好了,今天就说这么多,关于 mysql 的那个 change buffer 啥的,等我下篇吧,一起把 mysql 里面的各种 buffer 盘一遍,比如啥 Log Buffer、Double Write Buffer 等等。

其实上面这些问题都不是很难,最关键的还是看你有没有理解。就拿跨代引用的那个记忆集来说,肯定不会直接问你记忆集是什么,而是拐着弯的问,你只有理解了你才能联想起来。

包括 5 个因素的 GC 分析题,其实也是一样的,你需要理解整个 GC 的流程和原理,死记硬背的话这些题吃不住的。

好了,关于上面别的题目有疑问的话可以留言,我会选择性的给予解答,更多的其实我的面试仓库里面都整理了,可以去看看。

仓库地址:https://yessimida.gitee.io/interview-of-legends/#/?id=interview-of-legends

我是yes,从一点点到亿点点,我们下篇见~

微信扫码关注该文公众号作者

戳这里提交新闻线索和高质量文章给我们。
相关阅读
【奇闻】心脏死亡一小时后“复活”?跨越生与死的界限?苏格兰的另一面,在这些数字里下雨+降温倒计时4天!西雅图终终终终于要入秋了......沪指跌破 3000 点,芯片股集体大跌;上海:明年插混、增程车无免费绿牌;央行:建设覆盖全社会的征信体系 | 极客早知道倒计时4天!鸟哥笔记双十一营销峰会开幕!【强大优惠!Brighton高级公寓出租|限时免中介费+免1.5月租金,一室折后2205刀起】公交直达哈佛商学院,10分钟到BU纽约长岛这碗牛骨髓越南粉,驱车一小时也要去吃!还有无敌椰奶布丁!细胞的死亡速度并没有那么快!猪死后一小时内,器官细胞仍可被修复开课倒计时4天:邓璐斯坦尼康训练营从按部就班到独当一面,你准备好了吗?未央播报 | 央行发文建设覆盖全社会的征信体系 BOSS直聘向港交所递交双重主要上市申请撕讀《執筆五字法》1.1入住|近NEU步行13分钟/BU步行10分钟高级公寓一室一厅3925,包热水,室内洗衣机烘干机台湾公费生的下场科学家挖出一小碟人脑教它打游戏,5分钟上手吊打AI许志永:致细颈瓶《劝退书》Railcard突现折扣,20镑全年速冲!覆盖全年龄段!美团对战拼多多:重塑美团的社区团购战役女子当街被撞倒,遭强X;一小时后,嫌疑男还将另1女拖走性侵...想让村里人吃上榴莲千层的美团优选别再问怎么写“批判性论文”了!这是我看过ZUI全面的回答!从嗤之以鼻到正视地平说,我只花了一小时哈尔滨一小区停车超半小时,收费二十五元!物业回应:自己定价!海外趣事 在丽丝嘉私家花园“偷窥”了美人儿历时40年!维州老太寻找丈夫的中文姓氏!竟在维州还有大发现汝州捕怪鱼记:全网围观直播,历时45天抽干一湖水上线40分钟不见了,国剧别那么刺激好吗意大利IRCCS发表了目前最全面的新冠长期后遗症文章耗时4个月,这事终于有了好开头跑步,是我留给自己和这座城市的一小时自由12.6入住|近NEU步行13分钟/BU步行10分钟高级公寓两室一厅两卫4250,包热水蔚来欲覆盖全价位,用什么实现野心?为什么酸奶是粘稠的?现在站在大家面前的,是一个勇敢全面的李盈莹1.1入住|近NEU步行13分钟/BU步行10分钟高级公寓一室一厅3025,包热水,室内洗衣机烘干机
logo
联系我们隐私协议©2024 redian.news
Redian新闻
Redian.news刊载任何文章,不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。文章信息的合法性及真实性由其作者负责,与Redian.news及其运营公司无关。欢迎投稿,如发现稿件侵权,或作者不愿在本网发表文章,请版权拥有者通知本网处理。