博主美团暑期实习OC了,之后要从golang转到java了。今后会持续更新从零开始的Java学习之路,包括算法、web、数据库、分布式等内容,恳请读者们监督、批评、指正。
附上面经(回忆,部分题目缺失):
标签:java,区别,实现,美团,OC,golang,如何,底层 From: https://blog.csdn.net/m0_45978228/article/details/137570227一面:
1、Redis:跳表的底层如何实现?内存淘汰算法介绍一下,lru底层实现;
缓存击穿、穿透、雪崩有什么区别?如何防范?
2、MySQL:隔离级别?如何实现的?脏读怎么防止?
mysql中有哪些锁?引申:操作系统互斥锁底层怎么实现的?
做一道sql题:左连接相关
3、计算机网络:三次握手四次挥手?
4、从几十亿数据中查询某一个数据是否存在?怎么做?
5、你提到分治法,你说一下分治法与动态规划有什么区别?
6、手撕:最长回文子串
二面:
1、项目15min:涉及zookeeper注册发现的原理、epoll/poll区别、reactor/proactor区别等等;
2、计算机网络:三次握手?两次握手有什么问题?TCP与UDP区别?可靠性是如何保证的?展开讲讲;浏览器输入美团网址,返回美团界面,期间发生了什么?
3、操作系统与linux:操作系统的内存管理如何实现的?查看CPU利用率?查看某一进程详细信息?一个文件中有大量的url,空格隔开,列出出现频率前十的url?
4、Golang:defer是什么?底层如何实现的?数组和切片有什么区别?切片是如何扩容的?make和new的区别?协程与线程的区别?GMP模型是什么?如何进行调度的?这一块展开讲一下。你有了解过golang中的反射吗?举个应用例子。golang中对于一些任务的超时是如何管理的?怎么实现的(底层原理)?
5、Mysql:B+树与跳表、B树的区别?随机添加数据时B+树是如何进行构造的?随机删除数据呢?
6、几十亿的数据,找出出现频率最高的十个数据
7、手撕:二叉树的层序遍历