首页 > 美团平台Java开发暑期实习一面二面面经
头像
NyimaC
编辑于 2021-03-31 17:00
+ 关注

美团平台Java开发暑期实习一面二面面经

3.20笔试的,五道题,加起来A了两道多吧,3.23约的一面,约的3.24上午11点。3.26约的二面,约的3.30下午五点。
中途多次以为自己都凉了,不过还好给了机会,而且美团的面试官确实挺好的,不会的或者答的方向不太对的时候,都会去引导你。
暑期实习技术面一般是初试和复试两面。希望有offer!


一面 3.24上午11点(50分钟左右)
自己的回答没录上音,只能靠回忆了
1、自我介绍
2、项目介绍:邀约微信小程序、自定义线程池监控工具
(1)第一个项目提到了Redis,然后问了怎么用的,怎么保证和数据库数据一致的。
主要说了Redis事务
(2)用了布隆过滤器?说一说原理
多次hash+位数组
(3)线程池相关的项目,问了实现原理和拒绝策略
讲了一大串,Worker(继承AQS,实现Runnable),execute提交后的执行流程,addWorker->new Worker ->runWorker->getTask->...
控制状态和数量的ctl
拒绝策略四种都说了
3、操作系统
(1)缓冲区溢出(不了解...)
(2)内存管理,进程能看到的内存是多大?
又是一个之前没怎么遇到过的问题。我理解的是进程能看到的物理内存是多少,说了虚拟内存,但是进程能看到的应该只有能够映射到的那一片内存,具体多大要看映射了多少
(3)用户态的进程怎么访问内核态的?
答的陷入,然后又问具体的指令,系统调用是什么,这个答的不太清楚
4、计算机网络
(1)TCP和IP分别解决了网络什么样的问题
TCP负责建立连接,IP负责找到具体的机器(提了下ARP协议)
5、然后看到了简历上的博客地址了:https://nyimac.gitee.io 就按着博客上的提了一些问题
(1)又回到了Redis,问对Redis最深刻的体会是什么
感觉Redis是基于键值对的非关系型数据库,整个Redis可以看作一个很大的hashmap。
每一种用到的数据类型比如hash、set,底层都还有很多基础是数据结构来实现,并且会根据数据多少来调整
Redis的作者比较“懒”,很多东西都希望用一种能满足当前需求,并且又是最容易实现的方法来解决。比如选择使用跳表,而不是红黑树或者B+树
(2)为什么Redis写的时候是单线程的
面试官补充说单线程可以不用考虑并发安全问题
(3)NIO中的ByteBuffer,为什么需要ByteBuffer?和普通的Buffer有什么区别?
一开始说的不太好,后面面试官引导说非直接缓冲区和直接缓冲区。
查了一下:因为NIO中,缓冲区不单单可以是Java堆中的字节数组byte[],还可以是堆外内存,也就是DirectByteBuffer,很多场景使用堆外内存会减少一次内存拷贝,有更高的性能。
6、简单做个题吧
leetcode 102 二叉树层序遍历
leetcode 141 环形链表
7、智力题
3L的水桶和5L的水桶怎么量出4L的水
8、反问

二面 3.30下午5点(37分钟左右)
1、你觉得Java里有多少种可以使线程让出CPU的关键字或者原语?
sleep、wait、yield、各种Lock获取锁失败时、或者await(注意这里忘记说了LockSupport的park)
后来面试官问我Lock具体怎么让出的,我说到了AQS,state(但是就是没说到park)
又问CAS替换state失败了,放入队列里了,怎么就让出CPU了呢?具体怎么实现的呢?
这个时候我才想起来LockSupport的park
2、TCP三次握手的状态怎么转换的
这里问的是状态转化,我不太清楚,只知道挥手时候的状态TIME-WAIT之类的。握手就说了下序列号确认号啥的,感觉答的不是很好
3、开发过程中有没有遇到网络相关的异常?
说实话没遇到啥,但是说了下小程序直接登录时的证书验证异常,感觉不是面试官想要的答案
4、怎么构建一个请求超时?
答了一些,感觉面试官也不是很满意。面试官说:比如一个Web服务,请求过来了,你服务器也收到了,你就是不回它,这不就超时了
5、项目里用了Redis,具体拿来用作什么了?
缓存,说了下项目里是如何保证数据一致性的(还是Redis事务)
6、Redis里的哈希表和Java里的哈希表有啥区别?具体说说扩容有啥区别?
Redis中的rehash
Java中的resize

面试官接着问有啥区别,说了Redis的有缩容,Java的没有,而且具体的过程也有所不同
面试官说
(1)Redis中有缩容,Java中没有
(2)Redis中的扩容不是一次完成的,可以分多次,是渐进式地,而Java的是一次完成的
7、做个题
leetcode 543 二叉树直径
8、反问
问了下具体的部门和技术,面试官讲的很详细。后面了解到部门内部需要深入理解存储类知识,比如MySQL,Redis之类的(怪不得Redis问的比较详细)

求offer!

更多模拟面试

全部评论

(18) 回帖
加载中...
话题 回帖

相关热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐