滴滴Java日常实习二面
因为上次一面说了想做后端,但是面试官是做数据仓库的,然后我的简历就流转到另外一个部门了(我也不知道是哪个部门)。
滴滴二面
面试官介绍工作内容和方向
自我介绍
提问
1.除了平时常用的new的方式创建对象,你还知道什么其他的方式吗(反射)
2.抽象类和接口的区别
3.对于解决哈希冲突来说,常见的方法
4.那Java中用来解决hash冲突的方法是什么,底层的实现细节(关于为什么是8,我说的是因为泊松分布,面试官说其实按魔法数理解会合适一些)
5.讲一下死锁
6.在Java工程的具体应用中是怎么排查死锁的(我答的资源分配图,但是面试官说具体应用中用的是jstack,jConsole来排查,这个就比较偏工程了,没做过的确实不知道,果然我这种光背八股的废物,一下子就露馅了)
7.对于TCP和UDP来说,说一下对于“网络通信不可靠”这句话的理解
8.HotSpot VM 的实现,Partial GC和Full GC
9.双亲委派模型
反问
1.(关于我最近对于缓存击穿的思考)关于缓存击穿,解决策略是设置永久不过期、锁、布隆过滤器。但是在实际应用中是怎么解决的?
面试官答:在工程中,偏向服务解决问题效果会更好,一般是设立多级缓存,然后在高级别的缓存中设置最为热点的数据永不过期,像是布隆过滤器之类的其实过于书本化了,我们做工程的时候更多是具体问题具体分析。
2.做的具体业务是什么?
其他
1.问我啥时候能来
2.说一下大概多久会给答复(滴滴其实流程走的还是挺快的)
总结
两次面试下来,感觉滴滴的领导真的都好和蔼。一个个的都是笑着说,我回答不上来的时候还说:“这个可能有点超纲了,你说一下你的想法就行,不用紧张”。
问的东西整体来说都不难(应该是我太菜了,所以面试官问的都很简单),我这次比一面回答的慢了些,说的东西内容也更深了些(像是hashcode底层实现是:无符号右移十六位按位异或,然后再与n-1做与运算。这些慢慢说还是能说挺长时间的),感觉条理性是有进步的。但是对于具体工程场景的应用我还是太差了点,果然光背八股还是⑧太彳亍。