阿里钉钉暑期实习一二面

近期投递阿里钉钉提前批,三月三日一面,当晚师兄打电话让我好好准备之后老大面二面,三月十日二面,十二日晚师兄打电话通知二面通过,走后续系统流程。

一面(55分钟)

1、自我介绍

巴拉巴拉,三要素法(姓名、核心能力、目的)

2、介绍一下你在商汤的项目经历

2.1项目效果
2.2项目难点
2.3系统高可用性的保证
2.4系统监控的解决方案(可以参考zookeeper监控方案)

3、那你觉得Docker和VM有什么区别吗?

因为商汤的项目是采用Docker、K8s、Go实现的,所以问到了这里,读者可以看一下这篇文章:https://blog.csdn.net/qq_41999455/article/details/104541477

4、介绍一下商汤之前的那份实习经历和项目

3.1 项目难点
3.2 sql优化和Redis线上问题

5、单机怎样去确保MySQL的数据一致性问题?

采用MySQL提供的事务管理和隔离级别,围绕这一块讲了一下。

6、如果单机数据存储大的时候怎样去解决?

这里就需要考虑到数据库的性能问题,考虑分库分表;
一般单表数据达到500w以上时数据库性能会下降,单库数据达到5000w以上数据库性能会下降;

7、如果是在分布式的MySQL集群中需要去考虑这样的问题,怎样去解决呢?

从这里引出了分布式系统中的分布式事务,说了一下2PC、3PC、Paxos算法、ZAB协议算法的发展

8、你做过秒杀项目,那秒杀项目有哪些需要考虑的点呢,怎样去解决?

我主要考虑了两点问题:防止刷单行为和减库存的数据一致性,主要围绕这两点说了一下项目中的解决思路;

9、那在减库存这一块的解决方案都有哪些呢?

乐观锁、悲观锁、分布式锁、同步队列等,我是采用Redis分布式锁做的。

10、那你说一下Redis分布式锁的底层实现?

Redis提供的set方法,可以同时设置锁和过期时间,其实也就是之前setnx()和expire()方法的结合体;提到了redisson框架做分布式锁,lua脚步等。

11、设计模式有了解吗,了解过哪些设计模式?

这里提到了单例、观察订阅

12、单例模式为什么线程不安全,有哪些线程安全的单例模式?

需要去考虑到多线程情况下可能读到未实例化的单例;
线程安全的单例有:内部类实现、双重检验锁实现;

13、Spring的核心是什么呢,介绍一下

AOP、IOC,分别介绍一下它们的原理及作用;

14、最近有在看什么书或者参与什么开源项目吗?

最近在看K8S云原生这一块的东西,围绕着说了一下。

15、手撕算法题环节

给定一个二维数组array[M][N],二维数组每个元素的取值为0或1,0表示白色,1表示黑色,现在需要实现一个查找最大黑色区域的功能,元素位置相邻可以连接成为一个区域,例如array[0][1]和array[0][2]相邻,array[0][1]和array[1][1]相邻,则可以连接成为一个大小为3个元素的区域。请实现一个方法,如参为上述的数组,出参为最大黑色区域的大小(包含的元素个数)。

是类似与leetcode上的求岛屿面积的题,采用DFS算法递归解决了。

二面(45分钟)

1、自我介绍

2、商汤项目,优化的点、难点,解决方案

3、CRM系统项目,难点

4、你们做的CRM系统和市面上CRM系统的优势在哪里?

从项目特色的点出发,围绕该点展开介绍

5、在公司实习期间的难点和挑战点

6、如何看待技术栈的变化?

因为我在去商汤实习之前是做Java,去商汤之后转到了Go,第一次接触Go、K8S、Docker等云原生相关的东西,相对来说是两个方向的技术栈。

7、那你如何看待频繁换公司实习的?

8、如果你来阿里,最想学哪些东西?对什么技术栈比较感兴趣?

9、说一下你的职业规划吧

10、有什么想问我的吗?

总结

总得来讲,我的两次面试都是全程项目然后相关衍生问题,基础知识没有问多少,二面之后一面师兄打电话告诉我两次面试评价都不错,师兄讲了一下部门目前的业务方向,说希望我可以早点加入,目前等待系统开放走后续流程,师兄说可能会有交叉面试,让我再准备一下。

发布了49 篇原创文章 · 获赞 11 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41999455/article/details/104849759