阿里系的lazada一面现场(50min)
①sync的底层实现,锁优化,和lock的对⽐等
②jvm参数调优详细过程,到为什么这么设置,好处,⼀些gc场景,如何去分析gc⽇志
③redis数据结构,使⽤场景,微博场景使⽤redis如何去设计⽤户关系
④线程池参数设定,为什么这么设定,有什么作⽤?7⼤参数
⑤spring的循环依赖如何解决?为什么要三级缓存?
⑥优先级队列的底层原理?
⑦算法题:k路链表归并
⑧算法题:数组最长子序列
⑨ConcurrentHashMap的底层实现原理
⑩你线上问题解决经验是什么?遇到了什么问题?应该怎么去解决?
小结:一面主要是以基础为主,基本上会扣住你的项目来问,算法基本上必问了
阿里二面现场(60min)
①spring的作⽤、spring循环依赖怎么解决(说出三级缓存源码细节)、spring aop原理(动态代理)、spring bean⽣命周期(源码细节,以及各个位置的设计思路,有什么可扩展的)
②结合你项⽬问你如何设计,提出漏洞,你怎么解决?如何改进,万⼀挂了?加⼀台机器有没有问题?如果我⾮要不出问题怎么办?
③⾼并发下单扣库存场景如何设计
④怎么保证接口的幂等性?
⑤mysql的存储引擎的数据结构是什么?相比其余的数据结构,有什么优缺点?
⑥经典智力题:赛马找最快
⑦最近读了什么书?平时怎么学习?
小结:基本上以设计问题为主,回答得还算满意
阿里三面现场(90—120min)
①tcp协议和uDP 协议的区别是什么?
②3次握手和4次挥手的过程是什么样的?
③介绍一下springCloud的组件,各组件的作用,你们是怎么用,你的理解是什么?
④springCloudbus 关联的消息中间有几种?支持哪几种?你觉得什么场景下,会用到springCLoudBus?
⑤springCloud里面的限流,限流是怎么内部实现的?怎么去挡住多余的请求,怎么实现限流的(线程池的工作原理)?
⑥什么时候该用mongoDB,什么时候使用mysql?该如何选择?
⑦你做过的项目数据量有多大呢?如果现在数据量特别大,或者一张表一种放不下了,应该怎么处理?分布分表应该怎么做?具体的某一张表怎么拆?(涉及到主键生成,各种主键生成策略对比,数据分片,以及关联数据的存储,主从复制)
⑧Java官方提供的创建的线程池的方式有几种?分别是什么?
⑨你们使用的Java版本是什么?Java最新的版本是多少?你们为什么还在使用Java8呢?
⑩你们的垃圾回收器是什么的? 为什么是使用CMS而不是G1? 你能介绍一下像CMS垃圾回收器,从对象创建,内存分配到垃圾回收整个过程吗?
⑪介绍一下策略模式,应该怎么用? 它能解决什么问题?从编码领域系统设计方,介绍一下我们怎么去实现一个策略模式?
技术面内容大致就是这些了,除了靠平时的积累,我觉得提前做好充分准备还是非常有必要的,大家平时有时间完全可以多刷刷面试题,我也整理很多Java面试笔记,文末贴出来给大家看看
细节决定成败,不要忽略HR面
上次有个朋友面试滴滴,其实他技术面基本上是过了,最后卡在了HR面,结果凉了,所以也千万不要忽略了HR面,下面我就这些问题也做了个总结,希望能帮助大家快速顺利通过面试。(资深HR友情出手解答)
①贴一个举例子:请做一个自我介绍
这道面试题是大家在以后面试过程中会常被问到的,那么我们被问到之后,该如何回答呢?是 说姓名?年龄?还是其他什么?
最佳回答提示:
一般人回答这个问题往往会进入误区,回答的过于平常,只说姓名、年龄、爱好、工作经验等, 但是你们想到没有,其实这些信息你的个人简历上都有,那么面试官还问你干什么?
其实,面试官最希望知道的是求职者能否胜任这份工作,包括:最强的技能、最深入研究的知 识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但一定要突出积极的个性和做事的能力,说得合情合理企业的面试官才会相信。
企业很重视一个人的礼貌,求职者要尊重面试官,在回答每个问题之后还可以加一句“谢谢”, 企业喜欢有礼貌的求职者。
切记:回答面试官问题的时候一定要回答的自然,有底气,否则你给面试官留下一个“假”的印象。
总结:心得体会
既然选择这个行业,选择了做一个程序员,也就明白只有不断学习,积累实战经验才有资格往上走,拿高薪,为自己,为父母,为以后的家能有一定的经济保障。
学习时间都是自己挤出来的,短时间或许很难看到效果,一旦坚持下来了,必然会有所改变。不如好好想想自己为什么想进入这个行业,给自己内心一个答案。
面试大厂,最基本的就是夯实的基础,不然面试官随便一问你就凉了;其次会问一些技术原理,还会看你对知识掌握的广度,最重要的还是你的思路,这是面试官比较看重的。
最后,上面这些大厂面试真题都是非常好的学习资料,通过这些面试真题能够看看自己对技术知识掌握的大概情况,从而能够给自己定一个学习方向。包括上面分享到的学习指南,你都可以从学习指南里理顺学习路线,避免低效学习。
大厂Java架构核心笔记(适合中高级程序员阅读):
大厂Java架构核心笔记(适合中高级程序员阅读):