面试总结(三):我的第一次社招之路

说明

最近一个月都在忙着面试,白天忙工作,晚上面试,时不时的还要找借口请假去面试。还好面的公司不多,面了酷划,好未来,阿里,字节四个公司,阿里面了两个部门,最后拿到了阿里和字节的 offer。在这里总结下,给想面试的同学有个参考,由于我面的不多,涉及的内容可能不太全面。

先简单介绍下背景,2018 年毕业到现在一直在一家公司从事 Java 开发,2020 年 12 月中下旬开始面试到 2021 年 1 月中下旬基本结束,差不多一个月的时间。

本文主要分为两个部分,第一部分为当时我碰到的面试题,第二部分为我认为面试时应该注意的事项。

正文

面试题

酷划

一面

1、介绍自己的项目

2、Redis 怎么用的 有哪几种数据结构,哨兵 cluster

3、MySQL 的分库分表

4、map 套 map {key:value, key…} 其中每个 value 都可能是个 map,求指定 key 的最大深度

5、有 100 G 文件,里面存着数字,有 2 G 内存 的机器,怎么找见文件中的最大数字

6、MySQL 的索引使用 怎么优化 SQL

7、MySQL InnoDB 在存在单个索引和复合索引的情况下,为什么会选择复合索引

8、线程池的使用,线程数的确定,怎么防止队列数据溢出,有没有共享数据,怎么共享

好未来

一面

1、RabbitMQ 的特性 为什么要用 MQ

2、HTTP 1.0 和 1.1 的区别

3、浏览器进行请求的整体流程

4、Java 有哪几种线程池

5、MySQL 的几种事务隔离级别及特性

6、抢红包系统设计

7、文件上传性能瓶颈,如何优化

8、Redis 的数据结构,如何使用

9、ThreadLocal 的使用及原理

11、你知道哪些设计模式 怎么用的

12、缓存数据一致性如何保证

13、HTTPS 加密类型 攻击方式

阿里飞猪

一面

1、项目设计 高可用 高可靠 可扩展 怎么实现的

2、缓存数据一致性

3、如何进行接口设计

4、线程池的使用 线程数的设置

5、MQ 消息防丢 重复消费 唯一性 发布订阅 多消费组

6、JVM 运行数据区 垃圾回收算法 回收器 收回过程 你用过那些 有什么特点

7、内存溢出怎么处理 哪里会内存溢出

8、如何提高接口响应

9、MQ 消息持久化 是什么格式 怎么存的

10、缓存 Redis 那些数据结构 怎么用的 使用内存缓存要注意什么

11、Synchronized 和 Lock 的区别 你怎么用的

12、Redis 用来干什么了 怎么用的 Mongodb 为什么要用

13、Hbase 了解过吗 用过吗

14、为什么换工作

二面

线上写代码,多线程交替打印 0-100

阿里 CRO

一面

1、RabbitMQ 什么是 AMQP 协议,支持事务吗?

2、MQ 消息防丢 重复消费 如何实现发布订阅

3、Kafka 如何实现最多消费一次 at most once 支持事务吗 都有哪些概念

4、场景题,根据项目如果量级扩大 100 倍怎么办

5、Kafka 中 Zookeeper 的作用,消费位移信息怎么存的,如何广播消息

6、编程题 20 线程同时对一个数进行累加到 100 停止;斐波那契数列

7、斐波那契数列为什么不用递归,会出现什么问题,JVM 对栈的调整参数

8、CPU 故障排查

9、线程池的使用 参数 有哪几种拒绝策略

10、线程安全的 List Map

11、HashMap ConcurrentHashMap 原理

12、Kafka 为什么那么快

13、MySQL 事务隔离级别 一致性读 MVCC

14、MySQL 索引 B+ 树 为什么用 B+ 树 索引失效的几种情况

15、聚簇索引 辅助索引 联合索引是怎么是实现的

16、平时怎么提高自己

17、Java Synchronized Lock 的实现原理 区别

二面

1、Java 中的单例对象 如何实现?为什么要双重检查加锁

2、什么是堆排序

场景题:

3、抢红包如何设计

4、大数据量如何排序

5、一个监控系统,不同的时间维度展示数据,数据如何存储

6、未来的规划,想在哪个领域

7、用过 ES 吗?为什么要用 ES?

三面

1、单元测试写吗? mock 的底层原理 一个类的静态方法如何 mock?

2、表字段类型为 char,JavaBean 字段是 boolean,如何转换,Mybatis 提供了什么机制?

3、servlet filter listener 分别是什么? 执行顺序

4、自定义一个注解,在方法上使用进行登录校验,如何实现?

5、切点表达式如何写?

7、List 在遍历时可以进行添加,删除操作吗?为什么?Iterator 是什么?可以进行上述操作吗?知道底层原理吗?

8、有个超大文件,如何找到重复行?

9、MQ 消息防丢 重复消费

10、三个线程交替打印 A B C 如何实现?Lock 多 Condition ,Synchronized 分别如何实现?

11、Spring 和 SpringBoot 的区别

字节客服平台

一面

1、线程池的使用,是如何回收空闲线程的?

2、redis 数据接口,你是如何使用的?zset的底层数据结构,什么是跳表,为什么用跳表不用 B+ 树?redis 的查询效率是多少?为什么?项目里为什么用 list 而不用 zset?

3、MySQL 索引,事务隔离级别,默认事务隔离级别有什么问题?什么是 MVCC? 什么是 binlog redolog undolog ? 索引为什么用 B+ 树不同 B 树? 什么是 Next-Key Lock, 为什么能避免幻读?

4、Java HashMap 底层数据结构 put get 流程 ConcurrentHashMap 底层数据结构,为什么是线程安全的?为什么要用 Synchronized 和 CAS

5、算法 在未排序数组中找到第 K 大元素

6、如何实现分布式锁

二面

1、跳表是什么,怎么维护,查询时间复杂度是多少

2、什么是红黑树

3、LRU 算法 LinkedHashMap 底层

4、Reids 的数据结构

5、缓存数据一致性怎么保证

6、Java 反射 有关类的数据放在什么地方

7、算法 从链表尾部开始 K 个一组进行翻转

三面

1、Liunx 命令实现文件不同的比较

2、Linux 命令实现字符的匹配 单词的匹配

3、cat 通过管道符和 grep 直接查找有什么不同

4、工单系统怎么设计

5、微信朋友圈怎么设计

6、用户反应页面响应慢如何排查处理

注意事项

1、简历要简单明了,推荐使用冷熊简历

2、简历上的项目经历要突出重点,多思考为什么要使用某项技术,解决了什么问题。项目开发维护过程中,遇到了哪些难题,是如何解决的。

3、一定要熟悉项目,介绍项目时要选择自己最熟悉的,介绍时逻辑要清晰,表达要清楚,面试官会根据你的项目进行扩展提问。

4、简历上的技能掌握要实事求是,不熟悉的不要写熟练掌握,尽量避免使用精通这个词语。

5、面试时,越是紧张越要放慢语速,不要急于回答。遇到问题不会回答时,面试官有时会给出提示,根据提示多思考,实在想不来的就表示放弃,不要过于纠结。

6、平时要多思考多积累,每次面试都有场景设计题,这个很难突击复习,主要靠平时的思考积累。

7、多总结,每次面试完都尽量回忆记录下,对自己不会的,答得不顺畅的问题进行查缺补漏。

8、心态很重要,面试前的心态调整,深呼吸,冥想放松;面试过程中把握心态变化,不要浮躁,不要气馁;面试完的状态调整,不要过于纠结面试结果,多回想面试过程进行总结。

9、掌握好面试的节奏,给自己留出充足的学习总结时间,我个人建议同时进行的不要超过两家。

10、面试前期可以先找些小公司练练手,找找面试感觉,心仪的公司可以放到后面。

总结

我的第一次社招不出意外的话基本就这样结束了,上面的面试题主要记录的是知识点的考察,忽略了面试中项目的表述以及面试官通过项目对个人的考察。总之,社招项目经历很重要,一定要对简历上的项目了如指掌;

我面的公司较少,主要是阿里和字节的面试,整体面下来感觉字节的面试难度较高,每次都有算法题,难度基本就是 LeetCode 的 Medium 级别,但可能会把多个考点融合起来;其他知识点也考察得比较的深入。

除了常见的面试知识点,还有就是场景设计题,几乎每次面试都碰到了,面试官非常喜欢通过这类题来考察面试者的个人能力,这要靠平时的多学习多思考多积累。

推荐一些在面试准备时,个人觉得还不错的资料:

LeetCode 刷题指南: 可以参考袁广鑫的回答

关于面试常见知识点的考察:ThinkWon 的博客 程序员囧辉的博客

关于架构方面知识的学习:架构师之路

最后,希望大家都能在面试中取得好结果,去自己心仪的公司上班。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值