欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

阿里巴巴校招四面经验分享

程序员文章站 2022-04-09 18:33:33
08.04开始的阿里一面到08.22的四面,今天得知四面挂了感觉很可惜,毕竟差Offer仅一步之遥,但又在意料之中;你选择公司,公司同样也选择你,如果你没有足够优秀,那么对不起-你只是一个过客,而我就是那么一个过客而已。我也留了退路,毕竟阿里没有十足的把握;在这段时间我也去面过三家公司都是自身产品研... ......

 总结

  06.20我从北京xxxx有限公司离职,结束了一年的见习生涯。07.05-08.04在帮我姐夫做翻译;毕竟这段时间比较空闲,在空闲的时候我都是在准备面试,不管是java基础、jvm、数据库、数据结构、分布式、集群还是项目都准备的差不多,期间我看过《数据结构与算法分析》和《java编程思想》等书籍。08.03我回到深圳,08.04开始的阿里一面到08.22的四面,今天得知四面挂了感觉很可惜,毕竟差offer仅一步之遥,但又在意料之中;你选择公司,公司同样也选择你,如果你没有足够优秀,那么对不起-你只是一个过客,而我就是那么一个过客而已。我也留了退路,毕竟阿里没有十足的把握;在这段时间我也去面过三家公司都是自身产品研发,很巧很幸运也都拿到了offer;公司没有好坏之分,你选择公司的原因无非看在该公司是否能够给予我们期望的salary、行业的前景和对自身的成长空间,这些之中阿里无非是首选。从阿里的这趟面试经历中,给我最大的领悟就是:只有自己足够优秀,才有选择的余地。

 


 一面(30分钟)

 

  你最近在干吗?(********)、你能说下服装外贸的流程吗?、集合底层原理、介绍项目、介绍下buddo、如果我发了两笔相同的转账你是怎么处理的?(项目上,采用redis:单线程)、redis挂了怎么办?(采取集群模式,能够持久化:命令行log和持久化到本地或者是远程服务器存储)、你能讲下对账吗?、你有什么要问我的吗?

 


 二面(45分钟)

  介绍一下自己、介绍一下项目、问了个交易场景是怎么处理的、你做过jvm的优化吗(答:没有,因为在项目上有专门的架构团队,他们负责这些工作,但我有简单了解过)?那你在项目上优化过什么没有?(答:将数据库数据放入缓存、因为这些数据是不常改的)你除了学习java还有学习其他语言吗?(答:有了解过python偶尔会去看一些视频,毕竟现在我还处在学习阶段,我觉得我现在应该先把java基础先打牢,然后再去把其他语言作为第二或者第三语言)、你看过redis、dubbo的源码吗?(答:没有,但我简单了解过;看源码就是看别人写的好的代码思想,因为看源码需要有足够的能力才有看得懂,我觉得java的基础得先掌握牢固,比如:设计模式啊、jdk源码啊等)你除了在项目上学的东西还有哪些途径获取知识(公众号、书)、你关注的公众号有哪些?(hollis、java后端技术、java思维导图、java技术栈、java面试笔试)、在最近的一篇文章你学到了什么(jvm,开始巴拉巴拉)、你参加过世界知名的大赛吗?(如:acm,答:我参加过蓝桥杯、创新大赛,acm没能力去啊)、你的成绩怎样?(开始巴拉巴拉)

 


 三面(49分钟,交叉面)

  • 前戏

a:你面的是icbu(国际技术事业部)是吗?

b:是的,之前填的是这个部门

a:来我们部门(业务平台事业部)吧?现在阿里的重心在我们部门,icbu的话不是公司的业务核心(面试官在憨笑)

b:可以啊,可以转部门吗?可以的话我就转过来(在憨笑)

a:可以转,不过一般是要在正式两年之后才可以

a:你之前面试过吗?你是第轮面试了啊?

b:这是第三面了

a:你现在人在哪里呢?

b:我现在在深圳这边

a:来杭州吧,深圳那边的话是一个研发基地,杭州是总部基本核心业务部门都在这里

b:可以的,听从安排,毕竟阿里牛人多,哪里需要去哪里(在笑着)

a:好吧,现在开始我们的面试吧

 

  • 面试

a:自我介绍下......

b:巴拉巴拉

a:你做过哪些项目

b:开始叙述......(先讲做过的项目,然后挑一个熟悉的项目精讲:包括项目背景、项目系统架构、用到的技术、模块的各个功能)

a:为什么要用分布式?我集成模式也可以啊?

b:分布式系统的话有这些优点:qps、运行可靠性、可扩展性、可维护性、解耦等(还好多,多巴拉巴拉)

a:那分布式的数据一致性问题怎么解决?

b:在我们项目的话,内部通讯主要采用的是mq,mq在一定程度上市可以保证书屋的一致性的

a:mq如何保证一致性的?

b:比如a模块发了一个消息到topic1,b模块监听topic1;如果b获取了消息就会往下执行,如果没有获取则消息还在

a:如果此时我b系统奔溃了怎么办?这个怎么处理?(这个问题主要问的是分布式、集群的特点了)

b:因为分布式系统在集群模式下,每一个服务实例都有运行数据的拷贝;比如b奔溃了导致线程中断,因为分布式有容灾的特性在每个b系统的集群实例都有相关数据的备份,即使b挂了也没事,还有b1、b2、b3......

a:xxxxx模块是干什么的?

b:巴拉巴拉

a:为什么网关要用restful接口方式?

b:为了兼容之前的系统,客户化的时候去掉了网关模块;现在统一采用的是dubbo接口,因为dubbo也有错误重试、软负载、服务自动发现等优点(建议在回答的时候尽量要回答为什么,自己主动说而不是别人问)

a:缓存你们一般用来干嘛?

b:在我们项目的话,主要用于两个方面;一是:基础配置数据,二是:异步缓存

a:基础配置数据的话是你们服务起来的时候一个一个启动吗?

b:是的,我们用的@postconstruct注解,当服务一启动的时候就将数据库的配置加载到本地缓存;如果在应用程序中,某个请求拿不到缓存的话就去数据库查询(适当改编,因为之前是没有去数据库拿数据这一步,毕竟有可能缓存你拿不到消息)

a:项目问完了,现在问下java基础

a:stringbuffer、stringbuilder的区别

b:巴拉巴拉

a:arraylist、linkedlist的区别以及使用场景

b:巴拉巴拉

a:泛型用过吗?

b:用过,比如list、set、map这些都有用到过泛型

a:泛型的优点是什么?

b:避免了castclassexception的异常;在没有泛型之前是用object,但这有一个问题是会有类转换异常;泛型有类型擦除,在编译期间这行类型是不会保留的

a:再来讲讲集合吧,hashmap是线程安全的吗?

b:非线程安全,线程安全的有hashtable、concurrenthashmap

a:设计模式用过吗?

b:具体没用过,但了解过;比如io的适配器模式和装饰器模式

a:使用单例模式的时候需要注意什么?

b:侧重双重校验锁(再巴拉巴拉其他的)

a:web开发了解吗?

b:了解过一些

a:问个简单的,post与get的区别?

b:巴拉巴拉

a:cookie与session的区别?

b:巴拉巴拉

a:好的差不了了解了,你还有什么想问的吗?

b:我问下的,阿里校招难吗?容不容易进啊?

a:挺难的,现在我们部门一个都还没过,一个offer都还没发。你这边我觉得没什么问题

b:阿里对待校招生有怎样的培养计划?

a:进去之后都是有师兄带着的,也有全部的新人做一个项目............

b:转正难不难啊?

a:也不算难,转正的时候会参考以往的工作外加考核

b:好的,我差不多了解了

a:好的,谢谢,再见

b:谢谢啊,拜拜

 


 四面(57分钟,交叉面)

a:清算与结算有什么区别?

a:你觉得java跟其他高级语言有什么区别?

a:java的最新版本是什么?有什么特性?

a:stringbuffer、stringbuilder的区别

a:线程安全的概念

a:代理模式

a:异常分为哪些,运行时异常与非运行时异常的区别,自定义异常属于什么异常

a:final与finally的区别

a:b_io、n_io、a_io的区别

a:jvm

a:jmm

a:如果一个应用隔三天就会发生outofmemory,这个问题你会怎么排查?(jmap工具)

a:mysql怎么备份(mysqldump -h127.0.0.1 -uroot -ppass myweb > d:/backupfile.sql)

a:复合索引的问题

a:mysql的存储引擎有哪些,他们有哪些不一样

a:mysql事务的四个特性

a:xxxxx项目分为哪几个模块?

a:适配器用来干嘛的?

a:你们项目的幂等校验

a:我大概了解了;结果的话这个星期会出,你注意下手机或者邮件。先这样了,再见

a:谢谢,拜拜

......(还有其他的,记不起来了)