来自普通本科并最终取得美团sp的春招心得!后台开发-java
楼主来自重庆一个普通的本科大学计算机学院,自己曾经在没拿到offer时也焦虑彷徨过,大大小小的公司自己也有投过,最终在自己闭关修炼一个月后成功斩获4个offer(美团sp,keep,汉得sp,大华)。
下面时间回到2月份,分享下自己这一路走过的历程。😊😊😊第一次写,还望体谅!
美团内推码:DaKbtaj
2020.12月-2021.02月
2.25-3.15
2.28晚7.00跟谁学
5道选择+4道编程,当时不知道要用输入 ,Scanner忘了,哈哈哈。
3.4携程笔试
2道编程题不会
3.6安奇信 最短路径
3.7 传音二面 栈实现四则运算 + 消费幂等性
3.9恒生笔试:一个数组里面只有两个数字出现一次且不一样,其余数字都出现了两次,怎么找出这两个数字?
3.16-至今
3.16 科大讯飞 初面挂 数据结构基础薄弱---哈夫曼树
3.17美团下午5点(只记得一些)
拦截器和过滤器的区别?
②拦截器不依赖与servlet容器,过滤器依赖与servlet容器。
③拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用。
④拦截器可以访问action上下文、值栈里的对象,而过滤器不能访问。
⑥拦截器可以获取IOC容器中的各个bean,而过滤器就不行,这点很重要,在拦截器里注入一个service,可以调用业务逻辑。
算法:顺时针旋转n*n的矩阵---分治 删除链表倒数第n个节点
不用加法实现两数之和:其实是将加法的加和进位分成两步来做;
3.19上午11点美团二面:
基础:JVM+MySQL+Redis
思维题:25匹马;从0到9999找出含6的数字的个数(用概率,其实就是排列组合)
解决:10000 -完全不含6的数字个数(9*9*9*9)
变体:0到9999这1万个数中有多少个数字7?(请不要理解为多少个数包含7)
#思路&答案
总共有四位数,每位数的可能分别有10种(0~9)。
每一个位,都会出现0-9的交替,实际上在出现7这个角度,各个位是一样的。
现在假设个位固定为7,那么其他的位数的变化数量是10 * 10 * 10 = 1000种。就是说数字7在个位出现的次数为1000。以此类推,数字7在十位、百位、千位出现的次数也是1000。故答案为4 * 1000 = 4000
算法:环形链表,AC
反问:贵公司一般最多多少次面?答:2+1,3+1都有
3.27美团优选hr面
3.15 腾讯晚8点一面
四大金刚问了50分钟。。。真的记不得了太多问题,感觉自己只答上了70%的问题。
最后是一个场景题:怎么存储十万个QQ好友用什么数据结构,考虑到哪些问题?
当时想了5分钟后,说了下HashMap的实现思想,并用hashMap的数据结构去存储。将姓氏的第一个字母归类存储,用26个hash桶来存,每个桶大概存3800个用户,这样查找通过hash算法直接定位到一个桶,比遍历查找肯定快很多。然后后面用链表加红黑树的方式来实现。考虑的问题是查找好友时比较快,当用户多时查找是O(logn)级别(红黑树),然后增加删除元素稍微慢一点,因为涉及到红黑树自平衡的左旋和右旋操作。所以这种适合于查询好友大得业务,只能应对小数据增删。然后就结束了。当时说的挺乱的没有现在这么冷静,面完后觉得自己没有机会了,没想到隔了两天就来二面邮件了。
所以大家面试的时候怎么都不能放弃自己,还有做不来的尽量往与问题相关的一些东西想,想到什么说什么不要怕错言之有理即可,当然也可以让面试官给点提示之类。
3.17腾讯晚8点二面:
http1.0、http2.0的区别特征以及性能?
Linux中项目出错怎么排查bug?top命令查看进程使用情况、通过其它命令查看内存使用情况?是否网络拥塞?通过打印日志看哪些请求时连接超时的。
3.19腾讯hr面
自我介绍、项目介绍、项目中遇到的问题怎么解决的,实习经历、自己的优缺点(各三个)、自己遇到过最大的挫折、目前有offer或者在面试吗、对地点有要求吗?
3.20 keep 14点-16.30(离谱的是连续2+1,技术完了马上又是直接下一面,二面完了直接hr面,离谱哈哈哈哈)4.8OC
一面14-15
Java基础:JVM(因为简历上直接写的熟悉JVM而且放在了第一排所以基本一面面试官都是直接从JVM开始问哈哈哈哈哈),然后又是一些运行时数据区、GC算法、GC收集器(不同种类的区别以及性能)、并发编程相关的比如AQS,lock与synchronize的区别、数据库MySQL的存储结构原理、Redis的RDB+AOF,最后又聊了下项目相关的一些东西,其它暂时不记得了。。。
反问评价:java基础不错,已经超过大部分在校生了。哈哈哈哈听到这句话感觉自己之前吃过的苦都值得了。
二面15-16
二面面试官上来就问了几个具体线上问题,当时有点懵。
第一个怎样避免重复消费的问题?第二个问题Redis到MySQL的数据一致性问题?第三个是数据库主从怎么保持数据一致性?一些java基础问题(问的不多)。接着又是一个场景题 用java面向对象的思想(比如设计的时候体现出封装性、多态性之类的) 去实现一个浏览器图片的读取,图片格式有三种PNG、JPG、GIF三种格式。这个问题当时有点没听明白耽搁了挺久,后面就说定义一个接口,里面有个方法show()表示展示图片,然后定义三个类ImagePng、ImageJpg、ImageGif然后实现接口重写show方法,表示不同图片进行不同的展示,这就是多态。
后面又问了些最近在看什么?将来打算?我回答的是最近在学习java中的一些IO类型(BIO、AIO、NIO),然后后面自己会学习一些ES、SpringCloud、MQ之类的。
面试官就直接说待会HR会联系我,然后就道别了,感觉跟梦一样哈哈哈哈。。。。
三面16-16.30 HR面
这里跟HR聊得就很轻松了,就是一些平日里的事情,对keep的认识(我说了个我们寝室每次打完篮球都会用keep拉伸,这个把HR逗笑了)然后问我keep的满意程度和一些不满意的地方,我说很满意很nice(滑稽哈哈哈哈),然后说还有其它什么问题吗?我以为是反问环节就问了个福利情况,又把她逗笑了,她说不是反问环节,我。。。。。聊了半小时差不多,感觉就很轻松。