程序员的天堂:5面阿里P6,无奈败北HR面,4技术面+HR面回顾
可能每个技术人都有个阿里梦,我也不例外。年前就准备离职了,没想到这个突如其来的疫情,完全将面试升级为地狱难度,焦虑、烦躁、失眠,是过去一个月的主旋律。
这个月也面了几个大厂,包括阿里。是的,最后我挂在了HR面。这篇文章来总结一下我在阿里五轮的面试经历,希望能对读者有所启发。
阿里社招一般有四到五轮,我这次的流程是第一轮技术面、第二轮写代码、第三轮boss面、第四轮boss面、第五轮HR面。
一面:
先自我介绍下
聊项目,逆向系统是什么意思
聊项目,逆向系统用了哪些技术
线程池的线程数怎么确定?
如果是IO操作为主怎么确定?
如果计算型操作又怎么确定?
Redis熟悉么,了解哪些数据结构?
跳表的查询过程是怎么样的,查询和插入的时间复杂度?
红黑树了解么,时间复杂度?
既然两个数据结构时间复杂度都是O(logN),zset为什么不用红黑树
说下Dubbo的原理?
CAS了解么?
那我们做一道题吧,数组A,2*n个元素,n个奇数、n个偶数,设计一个算法,使得数组奇数下标位置放置的都是奇数,偶数下标位置放置的都是偶数
先说下你的思路
下一个奇数?怎么找?
有思路么?
你这样时间复杂度有点高,如果要求O(N)要怎么做
时间差不多了,先到这吧。你有什么想问我的?
二面:
面试官和蔼很多,你先介绍下自己吧
你对服务治理怎么理解的?
项目中的限流怎么实现的?
具体怎么实现的?
如果突然很多线程同时请求令牌,有什么问题?
怎么解决呢?
如果不用消息队列怎么解决?
分布式追踪的上下文是怎么存储和传递的?
Dubbo的RpcContext是怎么传递的?
你说的内存泄漏具体是怎么产生的?
线程池的线程是不是必须手动remove才可以回收value?
那你说的内存泄漏是指主线程还是线程池?
可是主线程不是都退出了,引用的对象不应该会主动回收么?
那你说下SpringMVC不同用户登录的信息怎么保证线程安全的?
这个直接用ThreadLocal不就可以么,你见过SpringMVC有锁实现的代码么?
我们聊聊mysql吧,说下索引结构
为什么使用B+树?
什么是索引覆盖?
Java为什么要设计双亲委派模型?
什么时候需要自定义类加载器?
我们做一道题吧,手写一个对象池
有什么想问我的么?
三面
sql题:给一个学生表有学生id,课程id,成绩共三列,找出语文成绩大于60且数学成绩小于90的学生
把上面的表行转列
算法题:让你设计一个微信发红包的api,你会怎么设计(面试官问我下一个数字(1234-->1243)这道题做过吗,我说做过,他就现场出了这道题),不能有人领到的红包里面没钱,红包数值精确到分。
四面
来个自我介绍呗,不超过3分钟
介绍下你最熟悉的项目
项目使用了什么架构,亮点是什么
平时主要学习什么课程
你目前的研究方向是什么
家是哪的
喜欢看什么书
大概什么时候能来实习呢
四面总结
虽然这面比较轻松,也没有什么具体的技术问题,但对项目仍然是面试官关注的,后面了解到总监面除了看你的基础,主要看你的潜力(就是有没有培养的价值),这个东西看起来挺虚的,但是从你平时的学习中仍然是可以看得出来的。所以,作为一名开发人员,平时对技术的研究也是很重要的。在听到面试官说让我好好等HR通知的时候可开心了,感觉饭都吃得更香了。
HR面
大概就聊了十几分钟天,问了问对于加班的看法和入职时间,还有就是hr面的例行问题了比如你做过的最有成就感的事情之类然后就介绍了一会儿部门主要业务字节的面试官都很好,不会的题会给提示
因为早就有跳槽的想法疫情期间,我搜集了 N 套阿里、腾讯、美团、网易等公司的面试题,把技术点梳理成一份大而全的“Java 架构面试”笔记(实际上比预期多花了不少精力),包含知识脉络 + 分支细节,由于篇幅有限,这里以图片的形式给大家展示一部分。免费给大家分享一波吧,点赞私信【资料】免费领取
我觉得这份资料尤其适合:
1.近期想跳槽,要面试的Java程序员,查漏补缺,以便尽快弥补短板;2.想了解“一线互联网公司”最新技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;3.做了几年Java开发,但还没形成系统的Java知识体系,缺乏清晰的提升方向和学习路径的程序员。
JVM 与性能优化知识点
一、JVM 内存区域划分
二、JVM 执行子系统
三.垃圾回收器和内存分配策略
四、编写高效优雅 Java 程序
五、性能优化
JVM 常问高频题解析
Java 集合面试题解析
Dubbo 面试问题解析
最后祝愿即将跳槽和已经在求职的大家都能找到一份好的工作,寒冬已过,春暖花开!!!
因为篇幅原因没能全部展示我把这些做了一个整理,在此分享出来,需要的粉丝朋友们可以点赞私信【面试】免费分享