美团(成都)Java研发工程师一面面经
8.19 18:45 一面(65min)
有两三题没答出来。。按照今年成都的内卷程度感觉寄了
项目
- 实习的项目重构主要是按照什么标准?
基础
操作系统
1. 进程和线程的区别?
2. 什么是临界区?
3. 进程间通信的方法?
4. 进程有哪些调度算法?
5. 什么是死锁?死锁的条件?
计算机网络
1. HTTP属于哪一层?
2. TCP和UDP处于哪一层?
3. TCP和UDP有什么运用场景?有哪些区别?
4. TCP为什么需要三次握手和四次挥手?
5. 浏览器输入网址之后发生了什么?
6. Cookie和Session的区别?
追问:分布式Session如何实现?
Java基础
1. Java的异常体系?
2. 遇见过什么Error?
答:OOM
追问:OOM你是怎么排查的?
3. 遇到过NoSuchMethodException吗?
有见过,但是没啥印象是什么场景了。。
4. Integer类有缓存吗?为什么需要缓存?
5. 我可以自己实现一个包名和类名都一样的Integer类吗?
JVM
1. JVM的类加载机制
2. 有几种类加载器?为什么要有双亲委派模型?
3. 打破双亲委派模型的例子
4. Java的锁升级机制?
追问:锁升级机制怎么实现的?可以从对象头来说
5. Java有哪些GC算法?
6. 了解过G1收集器吗?
追问:四个步骤中哪些步骤会STW?
7. Java的内存区域
Java数据结构
1. HashMap底层实现
2. HashMap扩容时发生死循环是什么情况?
3. ConcurrentHashMap底层
追问:ConcurrentHashMap扩容机制
4. LinkedHashMap了解过吗?用于解决什么问题?
5. ArrayList和LinkedList的区别?
逻辑题
40亿个不重复、未排序的unsigned int,给一个x,有2G内存,如果判断x是否在这40亿个数之中?
算法题
LeetCode 88 合并两个有序数组
最后没有反问环节,感觉有点凉的意思
#美团22届秋招面试##面经##校招##美团##Java工程师#