阿里云-智能事业群后台开发岗社招面经

背景:在现公司呆了三年,感觉想出去看看外面的世界,所以注册了招聘软件,开始了寒冬下的社招面试之旅


阿里云的一位技术专家要了我的简历,第一天(5月5日)就收到了阿里巴巴的邮件,称10日内会进行回复,结果第二天中午就来电约晚上的电话面试了。

主要记录下这次面试问的一些问题。


第一个面试:阿里云-智能事业群


首先是对方的自我介绍,介绍哪个部门的,有哪些场景

问项目相关的内容,说说最复杂的一块内容,问了微服务的专利,分布式Session,Zookeeper注册中心

问CPU占用率过高,OOM的场景下怎么排查问题:

CPU占用率过高可以通过top命令去看占用CPU最多的Java线程,然后用jstack查看对应的Java进程的名称,再结合实际的代码去排查问题;

OOM的情况下,更多的是根据dump的文件去分析异常、GC

JVM Full GC怎么降低次数:首先需要知道为什么会进行Full GC,Full GC和Minor GC的区别,然后就可以去回答这个问题了

HashMap的使用场景,线程池的使用

问了些网络相关的问题

Linux大量TimeWait是什么场景,怎么解决:连接未关闭?然后解决方式的话是调整Linux的内核参数net.ipv4.tcp_tw_reuse和recycle

HTTP请求Get和Post的区别:使用场景,GET主要用于获取资源,POST主要用于更新资源;GET是将请求内容拼接到URL后面的,POST可以有多种不同的方式,主要参考ContentType

为什么离职,未来的职业规划,问了我现在做了两年平台,然后阿里云是做业务,什么想法


面试一共进行了38分钟,面试最后面试官说大约会有3轮技术面试,然后最后一轮是HR面试。

面试时候,主要针对自己做过的项目,发散思维,询问各种场景下,你这个项目遇到的问题怎么解决。Java基础相关的内容主要在于JVM和线程池。


后续待更新....


背景:6号晚上接到了阿里云的一面电话,面试结束的第二天中午接到了约电话二面的的电话,于是将时间约到了当晚。


第二次面试:阿里云-智能事业群

首先是自我介绍,毕业院校,专业,工作经历

接着就开始询问工作中的项目经历,然后针对微服务的服务注册、发现、RPC,问了各种场景,差点难倒我(问了三十分钟)

服务如何注册、注册的机制是什么;

服务怎么发现的,如果zk挂掉了怎么办;

rpc的时候是长连接还是短连接,rpc连接池;

服务循环依赖的问题

然后就是问了一些Java相关的内容(十分钟左右):

线程池的时候,考虑哪些方面(线程数量、任务队列数量、任务拒绝策略);

Java的内存模型的理解(就简单说了下内存模型,我还没接着说GC);

static和final的区别,是否能被重写;

如何保证你的变量的数据一致性(并发集合框架、volatile、synchronized);

分布式环境下如何保证数据一致性(缓存)

然后就让我问他问题了,问了刚刚那个static和final的,回答说如果你理解的Java内存模型没错,那么答案就是你理解的那样,顺便问了我的职业规划、住址


相对而言的话,二面问了更多的项目的内容,少量的Java基础,和一面差不多的一些问题,感觉整个过程其实还是略微紧张的,最后其实面试官的语气还挺好的,就是不知道自己这次过了没有,期待下一次面试。



阿里云-云通信第三轮面试,现场面试。


面试过程如下:

首先是自我介绍,毕业院校,专业,工作经历

然后直接开始笔试,现场写一个连接池和一个限流方案

连接池的主要点在于:连接池的当前连接数量,连接的Queue,连接状态(是否可用)

限流主要点在于:目标地址的流量大小,目标地址的最大流量大小,限流策略,分布式场景下目标地址的流量大小获取

问了服务发现的逻辑

Zookeeper的Watcher机制

问了两个专利的信息

微服务的日志如何收集

看过什么开源框架的源码没有,Redis的原理知道么

回答了Spring, 然后就问了Spring AOP,怎么实现的(没怎么看过,简单说了下自己的理解)

Redis回答了Hash环

公司的金融类产品的相关信息

产品介绍

提供服务还是卖软件

竞争对手的信息

为什么离职

做业务和做底层架构的区别

工作两年中,主要的挑战是什么


感觉面试的时候,讨论到源代码和原理的话,就有点虚,所以关于Redis、Zookeeper、Spring的一些原理方面的问题,感觉答得一般,不是太理想,给自己个70分。


#面经##社招##阿里云##Java工程师#
全部评论
请问老哥为什么问了这么多zk,是你简历上写的吗
点赞 回复
分享
发布于 2021-08-02 01:03
专利信息???你有专利吗
点赞 回复
分享
发布于 2021-08-02 16:11
春招专场
校招火热招聘中
官网直投
老哥怎么一直被问服务注册发现,没手撕算法题?
点赞 回复
分享
发布于 2021-08-02 18:06
老哥之前也是在大厂吗?
点赞 回复
分享
发布于 2021-08-03 00:44
感觉好难
点赞 回复
分享
发布于 2021-08-03 12:16
看到有手写我就虚了
点赞 回复
分享
发布于 2021-08-03 23:11
老哥方便说下限流那个怎么写的吗?
点赞 回复
分享
发布于 2021-08-03 23:18

相关推荐

## 左右值引用[参考文献1:一文读懂C++右值引用和std::move](https://zhuanlan.zhihu.com/p/335994370)基本区分:有地址的变量是左值,没地址的字面值临时值及时右值**左值引用**const int& a 的使用场景  这个被称为const左值引用,特性:通过该引用建立的变量,无法进行修改,因此可以将该引用绑定到临时变量上。```void push_back(int &a);int a = 4;对于vec.push_back(4);  就会出现int &a = 4;这种左值引用指向右值的问题,会编译失败const左值引用不会修改指向值void push_back(const int &a) 则会避免这种情况```**右值引用**  右值引用专门为右值而生,可以指向右值,不能指向左值```int &&ref_a_right = 5; // ok int a = 5;int &&ref_a_left = a; // 编译不过,右值引用不可以指向左值 ref_a_right = 6; // 右值引用的用途:可以修改右值```使用场景:移动构造(a=b,b的复制给a后同时删除b,这就不得不使用右值引用了)**std::move()**该函数会将左值强制转换为右值,让右值引用可以指向左值,同时move的变量会失去原有值```1. 从性能上讲,左右值引用没有区别,传参使用左右值引用都可以避免拷贝。2. 右值引用可以直接指向右值,也可以通过std::move指向左值;而左值引用只能指向左值(const左值引用也能指向右值)。3. 作为函数形参时,右值引用更灵活。虽然const左值引用也可以做到左右值都接受,但它无法修改,有一定局限性。```const 在修饰返回值时可以起到保护的左右explicit 是对于构造函数的修饰,防止隐式转换,保证vector (4), 防止 vector a = 4;
点赞 评论 收藏
转发
5 92 评论
分享
牛客网
牛客企业服务