写点什么

一周 4 大厂 Java 开发岗面试日记(已拿 offer)

用户头像
Java架构师
关注
发布于: 45 分钟前

背景

在老东家五年了,总共工作整七年,经历两家公司。2021-5-30 日离职。公司规模较小,项目压力不大,因为不是 985/211 毕业,统招本科,计算机专业。目标:中大型公司,最好是大厂,哈哈哈,不过不抱希望,毕竟背景不太好。接下来我将以写日记的方式记录我的面试经历,希望能够给大家带来帮助!

准备

撰写简历,每天下班回家 7-12 点看视频,刷博客,看面试题。学习内容:Java学习视频+面试真题。准备内容:Java 基础,线程池,锁,MySQL 索引,事务,Spring,集合等。

2021-5.30

提了离职已经有二十多天了,今天老板签了字,办了离职手续,《某某直聘》上传简历,刷新简历。《某东供应链部门》打电话问了问我的学历是否统招本科,约我明天下午去面试。不过他也算是大厂吧,没有面试经验咋办,心里很忐忑,没关系,开始加油吧!咦,有条消息,我一看是我同学给我发的截图,原来他刷到我的简历了,他说帮我内推,内心还是挺激动的。内推公司:《打车》

2021-6-01

早上五点半爬起来了,开始看视频,刷资料,准备面试,一直到 12:00,没吃饭。公司太远了,在亦庄,要两个小时才能到,出了地铁口,映入眼帘的便是他们的大楼。找到部门,给了张面试题。


  • HashMap,HashTable,ConcurrentHashMap 的共同点和区别?

  • Spring 的 init-method,destroy-method 的实现方式?

  • 说几种实现幂等的方式?

  • 说几种分布式锁的实现方式?

  • 有一个 List 集合,多线程计算总和,说出你的思路和使用到的框架。

  • 一个开放题目,数三角形的


做完题目,感觉还比较 OK,来了一个面试官,大概三十多左右。


  • 自我介绍

  • 介绍一下项目

  • JVM 内存模型

  • MySQL 事务隔离的底层实现?

  • MySQL 索引介绍一下?

  • 命中索引要注意什么?

  • List<int style="margin: 0px; padding: 0px;">去重,手写代码,考察基础</int>


二面:部门负责人


  • 简单聊聊,介绍团队业务,有什么要问的吗?等待通知。(说好的《打车》内推呢,咋还不给我打电话呀,算了,可能简历没过,不过现在来看没去也是幸运的)


总结:MySQL 事务隔离底层实现细节还要多补充一下,JVM 细节在多看看。


接到《某某租房》公司面试邀约。下周一下午面,正好周六日在准备准备。

2021-6-04

坐地铁辗转到了公司大楼。你好,来面试的。领到一份面试题,来到三楼休息室,一大堆人跟菜市场似的。我擦,竞争压力这么大啊,看了一眼面试题,好多不会的,算了,不做了,走吧。来都来了,试试呗。开始做题。


  • String new String 的关系 ==,equals

  • 两个链表相交,求交点

  • 三个线程顺序打印 ABC

  • 如果 aab,aba 相等,给两个字符串,判断是否相等

  • 画一下 RPC 的架构图


一面:一位说话比较轻柔的技术官。


  • 自我介绍

  • String ,new String 这道题为什么这么选?原因?

  • 说一下项目

  • 手写一个单例

  • JVM 内存模型,JAVA 栈能分配对象吗?

  • 说一下类加载过程,双亲委派模型源码看过吗?介绍一下

  • 什么情况下栈会溢出?

  • 栈帧介绍一下?

  • MySQL 索引了解吗?画一下?

  • 从业务角度出发,如何设计 MySQL 数据库?有哪些优化点?

  • 垃圾回收了解吗?介绍一下?

  • 讲一下 AOP 的原理?Cglib 能代理 final 方法吗?


面试官对我说:我觉得还 OK,你等一下,我们领导开会,让 HR 通知你改天二面吧。:好的,启程回家。


同学微信:我们 HR 给你打电话了吗?:没有,那我让他约你。HR:你好,为了不耽误时间,约您电话面试。(同学介入)HR:你好,周五直接来公司面试。。。。

2021-6-05

相安无事,帮表弟的朋友扣了我的驾照 9 分。。。下午去某公司面试,结果面试官没有接到电话,保安也不让我去问,算了,走人吧。

2021-6-06

《某某租房》复试。面试官很年轻,比我大两岁,人家已经是研发经理了,看看我。哎。。。。


  • 项目为什么不用 RPC 框架?

  • 了解 RPC 吗?,画一下流程图?

  • RPC 和 HTTP 协议有什么区别?

  • 长连接是物理真实存在的吗?

  • 介绍一下项目?

  • MQ 消息丢了怎么办?发消息是原子操作吗?


三面:研发总监


  • 锁介绍一下?有哪些?

  • 线程阻塞从操作系统的角度介绍一下?

  • 其他的记不清了


下午四面:技术总监


  • HTTPS 的流程

  • 你认为你还欠缺什么?

  • 如何学习的?

  • 瞎扯淡,行了,签字,录用了


HR 谈 offer,回家喽。

2021-6-07

《某某优鲜》下午两点,找大楼找了半天。公司好几层,我擦,没见过这阵仗。上楼等一会,没有面试题。一面:


  • 你的项目如何拆分的?为什么这么拆?

  • 如何保证服务高可用?

  • MySQL 挂了怎么办?(挂就挂了,很惭愧,公司没实现数据库高可用。。。。)

  • 项目经历有点差啊,就不问你互联网项目问题了

  • 说一下 WebSocket 协议

  • 说一下 HTTPS 协议


二面:


  • SpringBoot 了解吗?和 Spring 的区别?

  • 如果想做定制化开发,怎么做?

  • @Conditional 说一下

  • 事务的传播机制?

  • 说说 MySQL 索引?

  • 可重入锁的原理?(state ,AQS)

  • 拆分服务,服务治理有了解吗?


HR:简单聊了一下,为什么五年不离职?你这样的很少见啊。还有一轮部门老大面试,你先回去吧,电话面。晚上收到通知,周五 6 点电话面试。

2021-6-08

该来的终于来了,要面对最终 BOSS 了。不过还好不用坐地铁了,上午看了几个视频,准备了一下,中午 12 点,洗个澡,收拾收拾。骑车出发,心情很忐忑。骑车到了地方,公司 LOGO 映入眼帘,两座大楼。给 HR 打电话,接待,上楼,等了一会,一个年轻的面试官过来了。


  • 设计一个秒杀系统,讲一下你的思路。(我擦!!!)

  • 如何设计限流?

  • 库存怎么扣减? decrby 可以吗?

  • 库存扣减失败怎么办?

  • 画一下项目结构?

  • a,b,c 联合索引, a=1,b=1,c>1 能命中索引吗? a=1,b>1,c=1 能命中索引吗?

  • JVM 堆说一下?触发 Full GC 的场景有哪些?

  • 说说 G1 垃圾回收器?老年代,年轻代如何分配?

  • Redis 锁出错怎么办?

  • Redis 扣减库存有问题怎么办?

  • 设计一个转账系统? A->B 转 100 块,有没有思路?

  • Redis 有哪些持久化方式?

  • Redis 数据会存放到磁盘吗?

  • Redis 为什么这么快?

  • Linux 统计 top10 IP 访问日志,用到哪些命令?(不会)

  • Linux 自己用过哪些命令呢?

  • 如何查看 Dump 日志?怎么产生的?命令有哪些?

  • 一个线程池 ,10 个核心,100 个最大线程数,100 个队列,10000 个请求打过来,描述一下线程池如何运行? 拒绝了怎么办?

  • 考察一下基础知识吧,String new String 的区别? (== equals )


二面:(和一面问了好几个重复的问题,害的我又讲了一遍)


  • 项目你认为有哪些难点?(活动报名超员,联想到秒杀)

  • 秒杀场景如何处理?

  • 可以用 Redis decrby 做库存扣减吗?如何做?(可以用 lua 保证原子性)

  • lua 太重,有别的方案吗?

  • 库存如何恢复?

  • 防止超卖还不行,未支付的订单如何处理?

  • 用户名密码如何防止被盗?(js 加密,不行,还是能破解,哦,https。。。。)

  • 说说 https 的流程?

  • 有了解过哪些非对称加密算法?对称加密算法呢?

  • c,b,a 索引问题,c=1,b=1,a=1 能命中索引吗? c>1,b=1,c=1 能命中索引吗?为什么?

  • 评论业务如何区分模块的? (bizId)

  • 某个业务打爆数据库了怎么办?(分库,拆分服务,单独部署,还有呢?MQ)

  • 了解限流吗?降级?算了,你也没接触过,不问了。(ORZ)

  • Linux 统计 top10 IP 访问日志,用到哪些命令?(不会)

  • 说一说你对 HashMap 的结构理解,如果 Key 相同怎么办,链表是前插还是后插?红黑树呢?

  • 用过哪些 Linux 命令?(mkdir,ll,等。。。。linux 确实是我的弱项,以后要恶补了。)

  • 1 2 2 3 3 4 4 5,如何确定 3 的索引位置? (计数统计,O(N) O(N),还有更好的方法吗?循环吧。(正确答案二分法,我提到了,但是思路却错了,被批了一顿)

  • GIT 团队开发如何去做?如果有个 feature 不用上线怎么办呢?

  • maven 如果包冲突,不解决会有什么问题?如何解决包冲突问题?

  • 设计一下 Dubbo 的线程池? 每次请求 50ms 200 QPS,客户端 500ms 超时,如何设计? 直接打入 200 个请求呢?队列多大?线程池多大?(回答的不好)

  • Integer a1=10000 Integer a2=10000,他俩 == 结果? 怎么才能相等呢?(equals,== 比较的引用地址,考察 Integer 缓存)

  • Integer a1=100 Integer a2=100 呢? 参数可以设置吗?如何设置?


部门老大面:


  • 你是某某同学吧?(舍友)

  • 说一下以后的打算?

  • 技术成长?业务方面有哪些选择?

  • 不能光看技术,要熟悉业务

  • 如果 DB 要挂了,用哪些方式去解决?(说了一些我认为的方案,但是明显不是。。毕竟没接触过,所以只能自己理解)

  • 如何统计 QPS?有没有了解市面上的框架?如何实现,原理呢?

  • 他们该问的都问了,聊聊非技术的吧

  • 等一下,我让 HR 找你。


HR 面:


  • 离职原因?

  • 五年怎么离职了呢?

  • 期望薪资?

  • 周一等消息吧。


和同学简单聊了聊。同学说我的回答还可以,只不过经验少一些。(哎,小公司业务量小,确实吃亏)。慢慢来!我说,有这次面试机会我已经知足了!!!要不然我的简历肯定是过不了的。

总结

​ 面试之前确实要多做准备,不过有实战经验的话更佳,怪不得大厂跳大厂较为容易一些。小公司也不要气馁,一些公司不看项目,看你对高并发项目的理解,哪怕自己没做过,有自己的方案也可以。基础必须扎实,不要只背理论,深入了解,了解的越深越好,虽说面试造火箭,工作拧螺丝,你有造火箭的能力还怕拧不好螺丝吗?


​ 面了整整一周,总共四家公司,最终结果自己还是可以接受的。 JVM,MySQL 必须掌握,其他基础知识要牢固,并且要用到实战上,要不然学再多也是理论,Linux 操作系统要恶补一下,由于自己高并发场景经验较少,这个只能在业务量较大的公司才能学到。


​ 另外,市场上的资料,不管是付费的还是非付费的确实对面试很有帮助,但是如果自己有个好项目搭配的话,更好一些,要不然面试官都没法问。


​ 别问我为什么五年不离职,我也不知道,是好事还是坏事?


​ 整体面下来,感觉自己准备的勉强及格了,但还是不够好,应该能回答的更好的,让我想起了一句话,你本来可以做的更好。所以,告诫自己不要再浪费时间,多学习,多总结。很幸运,再次感谢同学的内推,谢谢你。


在此给大家推荐一下我的学习资料,让我收获了很多,也让我在面试过程中能够对答如流【Java学习视频+面试真题

2021 年 6 月 11 日更新

背景

在老东家五年了,总共工作整七年,经历两家公司。2021-5-30 日离职。公司规模较小,项目压力不大,因为不是 985/211 毕业,统招本科,计算机专业。目标:中大型公司,最好是大厂,哈哈哈,不过不抱希望,毕竟背景不太好。接下来我将以写日记的方式记录我的面试经历,希望能够给大家带来帮助!

准备

撰写简历,每天下班回家 7-12 点看视频,刷博客,看面试题。学习内容:Java学习视频+面试真题。准备内容:Java 基础,线程池,锁,MySQL 索引,事务,Spring,集合等。

2021-5.30

提了离职已经有二十多天了,今天老板签了字,办了离职手续,《某某直聘》上传简历,刷新简历。《某东供应链部门》打电话问了问我的学历是否统招本科,约我明天下午去面试。不过他也算是大厂吧,没有面试经验咋办,心里很忐忑,没关系,开始加油吧!咦,有条消息,我一看是我同学给我发的截图,原来他刷到我的简历了,他说帮我内推,内心还是挺激动的。内推公司:《打车》

2021-6-01

早上五点半爬起来了,开始看视频,刷资料,准备面试,一直到 12:00,没吃饭。公司太远了,在亦庄,要两个小时才能到,出了地铁口,映入眼帘的便是他们的大楼。找到部门,给了张面试题。


  • HashMap,HashTable,ConcurrentHashMap 的共同点和区别?

  • Spring 的 init-method,destroy-method 的实现方式?

  • 说几种实现幂等的方式?

  • 说几种分布式锁的实现方式?

  • 有一个 List 集合,多线程计算总和,说出你的思路和使用到的框架。

  • 一个开放题目,数三角形的


做完题目,感觉还比较 OK,来了一个面试官,大概三十多左右。


  • 自我介绍

  • 介绍一下项目

  • JVM 内存模型

  • MySQL 事务隔离的底层实现?

  • MySQL 索引介绍一下?

  • 命中索引要注意什么?

  • List<int style="margin: 0px; padding: 0px;">去重,手写代码,考察基础</int>


二面:部门负责人


  • 简单聊聊,介绍团队业务,有什么要问的吗?等待通知。(说好的《打车》内推呢,咋还不给我打电话呀,算了,可能简历没过,不过现在来看没去也是幸运的)


总结:MySQL 事务隔离底层实现细节还要多补充一下,JVM 细节在多看看。


接到《某某租房》公司面试邀约。下周一下午面,正好周六日在准备准备。

2021-6-04

坐地铁辗转到了公司大楼。你好,来面试的。领到一份面试题,来到三楼休息室,一大堆人跟菜市场似的。我擦,竞争压力这么大啊,看了一眼面试题,好多不会的,算了,不做了,走吧。来都来了,试试呗。开始做题。


  • String new String 的关系 ==,equals

  • 两个链表相交,求交点

  • 三个线程顺序打印 ABC

  • 如果 aab,aba 相等,给两个字符串,判断是否相等

  • 画一下 RPC 的架构图


一面:一位说话比较轻柔的技术官。


  • 自我介绍

  • String ,new String 这道题为什么这么选?原因?

  • 说一下项目

  • 手写一个单例

  • JVM 内存模型,JAVA 栈能分配对象吗?

  • 说一下类加载过程,双亲委派模型源码看过吗?介绍一下

  • 什么情况下栈会溢出?

  • 栈帧介绍一下?

  • MySQL 索引了解吗?画一下?

  • 从业务角度出发,如何设计 MySQL 数据库?有哪些优化点?

  • 垃圾回收了解吗?介绍一下?

  • 讲一下 AOP 的原理?Cglib 能代理 final 方法吗?


面试官对我说:我觉得还 OK,你等一下,我们领导开会,让 HR 通知你改天二面吧。:好的,启程回家。


同学微信:我们 HR 给你打电话了吗?:没有,那我让他约你。HR:你好,为了不耽误时间,约您电话面试。(同学介入)HR:你好,周五直接来公司面试。。。。

2021-6-05

相安无事,帮表弟的朋友扣了我的驾照 9 分。。。下午去某公司面试,结果面试官没有接到电话,保安也不让我去问,算了,走人吧。

2021-6-06

《某某租房》复试。面试官很年轻,比我大两岁,人家已经是研发经理了,看看我。哎。。。。


  • 项目为什么不用 RPC 框架?

  • 了解 RPC 吗?,画一下流程图?

  • RPC 和 HTTP 协议有什么区别?

  • 长连接是物理真实存在的吗?

  • 介绍一下项目?

  • MQ 消息丢了怎么办?发消息是原子操作吗?


三面:研发总监


  • 锁介绍一下?有哪些?

  • 线程阻塞从操作系统的角度介绍一下?

  • 其他的记不清了


下午四面:技术总监


  • HTTPS 的流程

  • 你认为你还欠缺什么?

  • 如何学习的?

  • 瞎扯淡,行了,签字,录用了


HR 谈 offer,回家喽。

2021-6-07

《某某优鲜》下午两点,找大楼找了半天。公司好几层,我擦,没见过这阵仗。上楼等一会,没有面试题。一面:


  • 你的项目如何拆分的?为什么这么拆?

  • 如何保证服务高可用?

  • MySQL 挂了怎么办?(挂就挂了,很惭愧,公司没实现数据库高可用。。。。)

  • 项目经历有点差啊,就不问你互联网项目问题了

  • 说一下 WebSocket 协议

  • 说一下 HTTPS 协议


二面:


  • SpringBoot 了解吗?和 Spring 的区别?

  • 如果想做定制化开发,怎么做?

  • @Conditional 说一下

  • 事务的传播机制?

  • 说说 MySQL 索引?

  • 可重入锁的原理?(state ,AQS)

  • 拆分服务,服务治理有了解吗?


HR:简单聊了一下,为什么五年不离职?你这样的很少见啊。还有一轮部门老大面试,你先回去吧,电话面。晚上收到通知,周五 6 点电话面试。

2021-6-08

该来的终于来了,要面对最终 BOSS 了。不过还好不用坐地铁了,上午看了几个视频,准备了一下,中午 12 点,洗个澡,收拾收拾。骑车出发,心情很忐忑。骑车到了地方,公司 LOGO 映入眼帘,两座大楼。给 HR 打电话,接待,上楼,等了一会,一个年轻的面试官过来了。


  • 设计一个秒杀系统,讲一下你的思路。(我擦!!!)

  • 如何设计限流?

  • 库存怎么扣减? decrby 可以吗?

  • 库存扣减失败怎么办?

  • 画一下项目结构?

  • a,b,c 联合索引, a=1,b=1,c>1 能命中索引吗? a=1,b>1,c=1 能命中索引吗?

  • JVM 堆说一下?触发 Full GC 的场景有哪些?

  • 说说 G1 垃圾回收器?老年代,年轻代如何分配?

  • Redis 锁出错怎么办?

  • Redis 扣减库存有问题怎么办?

  • 设计一个转账系统? A->B 转 100 块,有没有思路?

  • Redis 有哪些持久化方式?

  • Redis 数据会存放到磁盘吗?

  • Redis 为什么这么快?

  • Linux 统计 top10 IP 访问日志,用到哪些命令?(不会)

  • Linux 自己用过哪些命令呢?

  • 如何查看 Dump 日志?怎么产生的?命令有哪些?

  • 一个线程池 ,10 个核心,100 个最大线程数,100 个队列,10000 个请求打过来,描述一下线程池如何运行? 拒绝了怎么办?

  • 考察一下基础知识吧,String new String 的区别? (== equals )


二面:(和一面问了好几个重复的问题,害的我又讲了一遍)


  • 项目你认为有哪些难点?(活动报名超员,联想到秒杀)

  • 秒杀场景如何处理?

  • 可以用 Redis decrby 做库存扣减吗?如何做?(可以用 lua 保证原子性)

  • lua 太重,有别的方案吗?

  • 库存如何恢复?

  • 防止超卖还不行,未支付的订单如何处理?

  • 用户名密码如何防止被盗?(js 加密,不行,还是能破解,哦,https。。。。)

  • 说说 https 的流程?

  • 有了解过哪些非对称加密算法?对称加密算法呢?

  • c,b,a 索引问题,c=1,b=1,a=1 能命中索引吗? c>1,b=1,c=1 能命中索引吗?为什么?

  • 评论业务如何区分模块的? (bizId)

  • 某个业务打爆数据库了怎么办?(分库,拆分服务,单独部署,还有呢?MQ)

  • 了解限流吗?降级?算了,你也没接触过,不问了。(ORZ)

  • Linux 统计 top10 IP 访问日志,用到哪些命令?(不会)

  • 说一说你对 HashMap 的结构理解,如果 Key 相同怎么办,链表是前插还是后插?红黑树呢?

  • 用过哪些 Linux 命令?(mkdir,ll,等。。。。linux 确实是我的弱项,以后要恶补了。)

  • 1 2 2 3 3 4 4 5,如何确定 3 的索引位置? (计数统计,O(N) O(N),还有更好的方法吗?循环吧。(正确答案二分法,我提到了,但是思路却错了,被批了一顿)

  • GIT 团队开发如何去做?如果有个 feature 不用上线怎么办呢?

  • maven 如果包冲突,不解决会有什么问题?如何解决包冲突问题?

  • 设计一下 Dubbo 的线程池? 每次请求 50ms 200 QPS,客户端 500ms 超时,如何设计? 直接打入 200 个请求呢?队列多大?线程池多大?(回答的不好)

  • Integer a1=10000 Integer a2=10000,他俩 == 结果? 怎么才能相等呢?(equals,== 比较的引用地址,考察 Integer 缓存)

  • Integer a1=100 Integer a2=100 呢? 参数可以设置吗?如何设置?


部门老大面:


  • 你是某某同学吧?(舍友)

  • 说一下以后的打算?

  • 技术成长?业务方面有哪些选择?

  • 不能光看技术,要熟悉业务

  • 如果 DB 要挂了,用哪些方式去解决?(说了一些我认为的方案,但是明显不是。。毕竟没接触过,所以只能自己理解)

  • 如何统计 QPS?有没有了解市面上的框架?如何实现,原理呢?

  • 他们该问的都问了,聊聊非技术的吧

  • 等一下,我让 HR 找你。


HR 面:


  • 离职原因?

  • 五年怎么离职了呢?

  • 期望薪资?

  • 周一等消息吧。


和同学简单聊了聊。同学说我的回答还可以,只不过经验少一些。(哎,小公司业务量小,确实吃亏)。慢慢来!我说,有这次面试机会我已经知足了!!!要不然我的简历肯定是过不了的。

总结

​ 面试之前确实要多做准备,不过有实战经验的话更佳,怪不得大厂跳大厂较为容易一些。小公司也不要气馁,一些公司不看项目,看你对高并发项目的理解,哪怕自己没做过,有自己的方案也可以。基础必须扎实,不要只背理论,深入了解,了解的越深越好,虽说面试造火箭,工作拧螺丝,你有造火箭的能力还怕拧不好螺丝吗?


​ 面了整整一周,总共四家公司,最终结果自己还是可以接受的。 JVM,MySQL 必须掌握,其他基础知识要牢固,并且要用到实战上,要不然学再多也是理论,Linux 操作系统要恶补一下,由于自己高并发场景经验较少,这个只能在业务量较大的公司才能学到。


​ 另外,市场上的资料,不管是付费的还是非付费的确实对面试很有帮助,但是如果自己有个好项目搭配的话,更好一些,要不然面试官都没法问。


​ 别问我为什么五年不离职,我也不知道,是好事还是坏事?


​ 整体面下来,感觉自己准备的勉强及格了,但还是不够好,应该能回答的更好的,让我想起了一句话,你本来可以做的更好。所以,告诫自己不要再浪费时间,多学习,多总结。很幸运,再次感谢同学的内推,谢谢你。


在此给大家推荐一下我的学习资料,让我收获了很多,也让我在面试过程中能够对答如流【Java学习视频+面试真题

2021 年 6 月 11 日更新

已经收到 offer。很开心。往后继续加油,像大牛看齐!


用户头像

Java架构师

关注

还未添加个人签名 2021.05.28 加入

还未添加个人简介

评论

发布
暂无评论
一周4大厂Java开发岗面试日记(已拿offer)