整理饿了么三面的面经,给后人留点借鉴的东西。
坐标北京饿了么
一面:
长得像大酒神的大佬,帅就完事了,主要问的基础知识。
1、什么是多态,什么是编译时多态,什么是运行时多态。
2、java线程同步都有哪几种方式,synchonized和reteenlock的区别。
3、reteenlock底层是怎么实现的,怎么实现的超时获取锁。
4、cas的原理,变量要用哪个关键字修饰,volatile实现的原理,进而引申到了java虚拟机的内存模型。
5、介绍一下java虚拟机内存模型,然后继续讨论volatile。
6、如果让你实现一个线程安全的队列,你会怎么实现。
7、聊点数据库,一般选什么样的字段做主键,有什么选取原则吗,用种子自增来做主键,为什么每次种子要加1,加2加3可以吗。
8、sql优化有哪些思路。
9、快速排序的实现原理。
10、操作系统寻址的范围。
11、用户态进入内核态,地址会发生什么变化。
12、tcp和upd的区别。
13,、tcp/ip传输数据,如果有数据丢失会怎么样。
14、重传一般会重传多少次,不同版本的重传次数一样吗。
15、你有什么想问我的。
二面:
主要是围绕项目,我一直在BB,面试官回应的不是太多。
1、介绍一下你的项目,和项目中的难点
2、如何防止超卖,答用分布式锁。
3、zk实现的分布式锁的原理。
4、限流是怎么实现的,hystrix介绍一下。
5、dubbo有哪些模块,底层通信的原理。
6、spring中用到了什么,ioc有什么好处,aop是怎么实现的。
7、线上问题的解决思路,程序运行一段时间,突然内存溢出,重启后,过一段时间又内存溢出,怎么排查问题。
三面:
也是个大佬,别人三面都是聊人生,到我这直接说来问点技术吧,主要问解决问题的思路。
1、如果让你实现一个mq,怎么样保证消息不丢失,我说有缓存,同时缓存满了,将消息持久化到硬盘。
2、硬盘io速度会变慢,有什么解决办法吗,这块答得不太好。
3、mysql的innodb索引数据结构为什么是b+树,用hash来实现可以吗。
4、redis有什么实用场景,高可用用的哪种方式,用过cluster吗,用过pipline吗,都没用过,,,,
5、新浪的那种短地址了解吗,如果让你实现一个短地址,你会怎么实现,这个答得也不好。
6、https了解吗,如果让你实现一个https,你会怎么实现。
7、dubbo负载均衡算法有哪些,如果让你实现一致性hash的dubbo负载均衡算法,你会怎么实现。
8、你有什么想问我的。
#面经##饿了么##秋招##Java工程师#