面试复盘 | 美团框架后端实习一面面经
2022.3.9
自我介绍
问了笔试怎么样,我说很难,他说确实。
项目1
1、rpc流程说一遍(还是磕磕绊绊,下次得练一下)
2、粘包问题(举了个例子)
3、TCP,UDP区别(可靠性,效率)
4、你的项目如何解决粘包问题(自定义协议,包含数据长度)
5、为什么用Netty(性能高,封装NIO):提示我NIO只是指非阻塞IO,我讲的很多都是IO多路复用
6、Netty如何解决粘包问题(定长,还有两个没想起来)
7、四种序列化方式(JSON,kryo,hessian,protobuf),有自己比较过效率吗(没有),那怎么知道快慢的(。。。)
8、IO多路复用(select、poll、epoll),有自己比较过效率吗(没有)
9、TCP有心跳检测,为什么还要用Netty的(可以设置间隔,可以增加处理内容)
10、项目里有异步操作?讲讲CompletableFuture(没看,忘了)
11、你说项目类似dubbo,讲讲dubbo(没看过)
项目2
1、介绍一下你的数据库(之前没说过,愣愣的)
2、能支持哪些SQL语句(增删查改,事务),问我支持where吗(支持),支持order by吗(不支持)
3、日志功能,mysql也有相关的日志(redo log,undo log,bin log)
4、讲讲MVCC(多版本并发控制,实现隔离性)
5、ACID都是什么意思(C没想起来,被提醒了)
6、死锁检测怎么实现的(有向图找环)
Redis
1、基础数据结构(五个)
2、缓存击穿是什么(热点key寄了)
3、持久化实现(RDB,AOF)
4、为什么有了MySQL还要Redis(作缓存)
5、Redis为什么高性能(单线程,数据结构好)
6、现在都是多核,为什么不用多线程(效率瓶颈在IO,不在CPU,Redis6之后IO使用多线程)
7、Redis的多线程模型了解吗(不了解)
8、Redis网络请求处理(不会)
Java
1、JVM的作用(跨平台),还有吗(想不起来了)
2、运行时内存区域(问太久了脑子不好使了,答的不好)
3、进程和线程(用Java的说的)
4、垃圾回收算法(清楚、整理、复制)
5、集合有哪些(List、Set、Map)
6、List有几种,区别是什么(ArrayList、LinkedList)
7、如何选择List(一般Array,频繁增删Linked)
8、Map有几种(HashMap、TreeMap)
9、HashMap哈希冲突怎么办(拉链法)
10、讲讲解决哈希冲突的方法(开放定址法,拉链法,想再说一个,没说出来)
11、怎么选择Map(需要有序时使用TreeMap)
12、什么是线程安全问题(举了个修改值的例子)
13、一般怎么解决线程安全问题(加锁)
14、有几种锁(两种,synchronized和Lock)
反问
一个多小时了,就到这里吧,有什么想问的。
我:部门base(北京上海都有),部门内容(框架)
总结
没想到没做算法题。
问的东西很多,然后问了很久,导致后面脑子不太好使了www。
最后许愿一面过~
#面试复盘##美团##面试题目#