三顾茅庐,七面阿里,终拿25k*16offer,我的面试历程

news2025/1/16 1:58:51

写在片头:声明,勿杠

首先简单说一下,这三次面试阿里并不是一次性去面的,实际上第一次面试时候还在大四,找的实习岗,不太清楚是什么部门,别问我为什么还记得面试题,有记录和复盘的习惯,再问就是杠。

个人背景不详细多说,学历双非本科,不是应届生,工作年限不长,技术不是大牛,但也非小白,面经分享是想给正面试的同行一些建议和鼓励,希望能够多多支持。

One:三顾茅庐,七面阿里,拿下25K*16offer

——一顾阿里一面被怼(未知部门)

阿里巴巴未知部门一面(问的问题让我感觉是偏金融的部门,面试官很严肃,现在想想都有些后怕)

  • 自我介绍

  • 开源项目贡献过代码么?(回答没有,很尴尬)

  • 之前在部门做什么?简单介绍一下业务吧,内部有哪些系统,作何交互过程说一下

  • Dubbo踩过哪些坑?分别是怎么解决的?(我答了异常处理时业务异常捕获的问题,自定义了一个异常拦截器)

  • 说下你对线程安全的理解

  • 事务有哪些特性?

  • 怎么理解原子性?

  • 讲一下乐观锁和悲观锁的区别,这两种锁在Java和MySQL分别是怎么实现的?

  • HashMap为什么不是线程安全的?怎么让HashMap变得线程安全?两者的区别是什么?

  • jdk1.8对ConcurrentHashMap做了哪些优化?为什么这样优化?

  • redis主从机制了解么?怎么实现的?

  • 有过GC调优的经历么?(有点虚,答得不是很好)

  • List,Map,Set三个接口存取元素时,各有什么特点?

  • TreeMap和TreeSet在排序时如何比较元素?Collection工具类中的sort()方法如何比较元素?

  • Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行 它们有什么区别?

  • 线程的sleep()方法和yield()方法有什么区别?

  • 当一个线程进入一个对象的synchronized方法A之后 其他线程是否可进入此对象的synchronized方法b?

  • 请说出与线程同步以及线程调度相关的方法

  • synchroized关键字的用法?

  • 启动一个线程是调用run()还是start()方法?

  • 有什么想问的么?

——二顾阿里二面惨败(菜鸟网络)

阿里巴巴菜鸟网络一面:

  • 先来了个自我介绍

  • 然后介绍了自己简历里写到的一个比较熟悉的项目(询问了项目的细节及具体的实现)

  • 接着面试官开始针对项目进行提问:(1)高并发的情况下,Kafka消费到第一条记录,在下沉服务处理好,但由于网络抖动没有正确返回给上层,上层服务再次调用服务,怎么样保证只处理一次请求?(我答了分布式锁,介绍实现)(2)有自己用Redis实现过吗?说说看

  • 介绍一下Redis的zset实现(回答的根据skiplist+hashtable和多级索引的方式实现)

  • 介绍一下B树。(自己拓展开来回答,讲到了B+树的区别,聚簇索引和非聚簇索引,为什么B+树更矮胖,如何确定B树的阶等。)

  • 如果是普通索引,如何查找到对应的数据?

  • hashmap如何扩容的?讲transfer方法和resize方法。为什么容量是2的指数次幂?

  • 介绍一下悲观锁和乐观锁。

  • 当synchronized对指定的方法上锁,一条线程获取锁执行任务时,另一条线程来获取这个方法对应实例的锁时获取失败,会被阻塞。那么当前一条线程执行完任务以后,怎么通知被阻塞的线程可以获得被释放的锁继续执行任务?(感觉回答得比较糟糕,后来复盘的时候反思了下,建议还是从对象头中存储的偏向线程ID、线程持有的锁、锁状态标志以及monitor锁计数器结合回答)

  • 介绍一下线程池(介绍几个参数以及几种常见的线程池,各自的阻塞队列)

  • 几个参数之间的关系?大致说了一下,打断问,如果最大线程数大于核心线程数,且阻塞队列中任务已满,核心线程数创建达到设置的最大值,提交任务的线程被阻塞挂起,请问此时线程池开始创建额外的线程来执行任务,是哪个任务先被执行?队列头的还是队列尾的?

  • 介绍一下jvm内存分区和垃圾回收机制?

  • 如何确定eden区的对象何时进入老年代?当线上监控中心的新生代和老年代哪个区域发生垃圾回收,表示此时比较危险?

  • Spring的两大特性?Springboot如何实现自动装配的?aop在项目中用过吗?怎么用的?底层是如何实现的?介绍一下动态代理。jdk原生的动态代理和cglib的动态代理有什么区别?

  • spark和flink的区别?(简历没写flink,但之前有spark任务,就勉强回答了一下)。

  • 有没有发生数据倾斜的情况?如何解决的?怎么观察spark任务的执行情况?

  • 有了解过apollo吗?

  • 了解CAP原则吗,介绍一下?

  • 你有什么要问我的吗?

阿里巴巴菜鸟网络二面:

  • 自我介绍,这次着重介绍自己的项目经历和项目总结。

  • 介绍项目,我刚说第一个就被面试官打断了,感觉要开始怼我,直接问有没有更亮点的项目。然后我介绍了另一个比较难的项目,讲了一些业务背景以及使用到的技术栈,不知道为什么面试官没有拓展开继续问下去了。

  • 网络协议有哪些?

  • 讲讲ThreadLocal的作用,是否线程安全?

  • 进程间的通信

  • TreeMap讲解,里面有什么属性,entry里有什么属性?

  • Java里有哪些是不需要加锁的同步方法?

  • 行锁和表锁的区别、场景

  • 组合索引的使用,eg. (a, b, c)索引,where a=x;where b=x;where a=x and b=x;哪个能使用索引?

  • ArrayList和linkedlist的区别?

  • 有哪些集合类是线程安全的?

  • 算法:(1)排好序的数组,找2个数的和为M的所有组合;(2)大数据下,找出出现频率topK的ip

  • 上家公司的研发部门有哪些组?大致的工作内容是什么?一个组多少人?你在什么组?负责什么?

  • 离开上家公司后,在看什么书?学习什么技术?(回答在研究Dubbo和MySQL,还看了一些底层实现的东西)

  • 截止目前,你自己感觉面试表现怎么样?

  • 你有没有要问我的?

——三顾阿里四面拿offer(一淘事业部)

阿里巴巴一淘事业部一面:

  • 按照自我介绍,项目介绍

  • 你们每天这么大的数据量,都是保存在关系型数据库中吗?

  • 那你们有没有对查询做一些优化呢?

  • 能说说为什么B+树相对于B树在查询上会更加优胜吗?

  • 除了上面这个范围查询,你还能说出其他的一些区别吗?

  • 刚刚我们聊到B+ Tree,那你知道B+Tree的叶子节点都可以存哪些东西吗?

  • 聚簇索引和非聚簇索引,在查询数据的时候有区别吗?

  • 刚刚你提到主键索引查询只会查一次,而非主键索引需要回表查询多次。是所有情况都是这样的吗?非主键索引一定会查询多次吗?

  • 在创建索引的时候你都会考虑哪些因素呢?有用过联合索引吗?

  • 在创建联合索引的时候,需要做联合索引多个字段之间顺序你们是如何选择的呢?

  • 知道在MySQL 5.6中,对索引做了哪些优化吗?

  • 你们创建那么多索引,到底有没有生效,或者说你们的SQL语句有没有使用索引查询你们有统计过吗?

  • 那排查的时候,有什么手段可以知道有没有走索引查询呢?

  • 那什么情况下会发生明明创建了索引,但是执行的时候并没有通过索引呢?

  • 你们线上数据的事务隔离级别是什么?

  • 手撕代码:链表内指定区间反转

阿里巴巴一淘事业部第二面:

  • 直接上来就手撕代码:重建二叉树

  • JVM:类加载机制,沙箱安全

  • 问到运行时数据区,我答漏了一个程序计数器,然后面试官就接着问到了程序计数器。

  • 问可达性分析,什么样的对象可以作为GcRoot、加载的时候把这些对象提前找好用的OopMap

  • 新生代几次对象几次到老年代?

  • 有没有可能直接就把刚new出来的对象放在老年代?(第一次碰到这个问题,有些慌,我答的有可能,毕竟有些垃圾回收器会有一个空间分配担保策略)

  • 多线程:volatile,CAS,总线嗅探,CPU缓存一致性协议

  • 讲一讲ReentrantLock、ThreadLocal、Lock和Synchronized的区别。

  • CountDownLatch,ABC三个线程怎么去保证顺序执行?

  • 数据库优化:B+树,Hash索引,最左前缀,索引优化分析,一条龙服务,都问了一下。

  • Redis:一来就是分布式锁,然后别的就没问了,可能也是觉得我回答得还行就跳过了。

  • HashMap:扩容的触发条件是什么?我答只是一个达到负载就扩容了,明显错了。然后面试官纠正说负载和Hash冲突同时发生。

  • 死锁怎么排查?

  • JVM调优怎么做?

  • 问了几个索引题。字符串要写单引号,字符串查询怎么增加查询效率,字符串索引太大了那就截取几个做索引,叫前缀索引。怎么判断一个索引字段选得好不好,看不重复的和总数的比值,越大越好。

  • 假如现在系统里面就是要模糊匹配怎么办?

阿里巴巴一淘事业部第三面

  • 自我介绍,直接问到了技术栈。(这次优化了自我介绍的内容,主要围绕4个点去讲。自报家门、项目经验、技术栈以及求职愿景)

  • 根据项目来提问,技术问题(这部分大致是对你的整体价值观做宏观的把控,包括上进心、责任心、心态以及工作激情等)

  • 在项目中遇到了哪些比较棘手的问题?是如何解决的呢?

  • 目前系统支撑的用户量是多少?假如用户量提升10倍,系统会出现什么样的问题?如何重新设计系统?(这部分就是主要考察你对问题的预见能力、解决能力,考察你对项目、问题解决的整体思路)

  • 使用memcached是一个什么样的原理?

  • 如何存放数据到memcached集群中,介绍一下这个过程。跟进的问题,讲一下一致性哈希算法的实现原理。

  • JVM中堆是如何管理的?JVM的内存回收机制,介绍一下

  • 分布式事务实现方式

  • 热点账户问题(项目中有就会问到)

  • 类加载委托机制

  • 锁的应用

  • 项目架构

  • 最后一问:你觉得你在同事眼中是一个什么样的人?

阿里巴巴一淘事业部第四面(终面:Hr面)

  • 自我介绍

  • 看你工作换得比较勤?你的职业规划是怎么样的?

  • 上一份工作为什么要换?(我回答的是:上份工作让我处于一个舒适区,但我比较喜欢做有挑战的事情,巴拉巴拉)

  • 对阿里了解多少?对电商了解多少?

  • 知道新零售吗?说说看

  • 读过哪些算法方面的书籍?

  • 开放题:数据和商业的关系

  • 薪资待遇

  • 你有什么想问的?

面试题答案:

Two:三顾阿里,七轮面试,我的经验复盘

1.阿里面试注意事项

  1. 部门选择:从这三次面试经历来看,部门不同,问到的技术栈都有所区别,所以在面试前最好是根据自己所面试的部门做相应的准备。

  2. 岗位选择:根据岗位介绍能够洞见的关键信息并不多,基于有限的信息,所谓合适通常需满足以下几点:①自身的核心竞争力与所应聘的岗位具有较高的匹配度;②对岗位的工作内容感兴趣,至少不排斥;③岗位所在的业务具有良好的前景;④工作地点可接受。

  3. 应变能力:几轮面试下来,给我最大的一个感受就是一定要培养自己的应变能力。在面试过程中,面试官会根据和你交流的过程中,找一些细节进行提问,一旦应变能力不强,就容易慌了张影响面试发挥,导致失败。

2.面试核心知识点梳理

除了阿里以外,其他七七七八八的互联网公司我也面过不少,不说身经百战,那也面临过一些枪林弹雨的。所以,对于面试会问到什么技术栈,还是做了一些详细的梳理,这些面试梳理还是相当有说服力的。

针对面试核心知识点的梳理,我提供了以下的思维导图和面试核心点PDF:

  • Java面试核心知识导图

  • Java面试核心点PDF

3.简历优化

不要以为简历只是一个 “敲门砖”而已,事实上,它将伴随你走过应聘流程中的几个关键环节:简历评估,技术面试,HR 面试。

一份优质的简历有助于应聘者展示自己的能力和优势,同时,也可以为面试官提供 “提问指导” (通常面试官会根据简历内容有针对性地提问,有的放矢),因此不断去优化自己的简历是很有必要的。

关于简历,我可以提供我个人的简历模板给你参考:

Three:我的未来规划(知足常乐,但不安于现状)

1.职业规划

程序员职业发展一般分三条路:

  • 技术

  • 管理

  • 创业

放到自己身上来看,很显然,没有创业的头脑,那这条路自然是行不通的。那走技术还是走管理?实际上并不需要过早定下来,等到一定年纪自然会开始方向的转移,但无论是走技术还是管理,一开始就要把技术打得扎实,由此,对于技术痴迷的我,先以技术路线为主,管理路线为辅。

2.学习规划

说得难听点,程序员不学习,那就是在“等死”,尤其是对于大厂程序员来说,因此接下来的时间要有一个清晰的学习规划。

我的学习规划如下:

  • Step1:按照技术路线图学习

  • Step2:啃完这些电子书籍和技术笔记

  • Step3:利用碎片时间看视频学习

3.业余规划

  • 搞副业:用业余时间搞点副业还是ok的,接点小项目,或写写博客(正在做)。

  • 混论坛:混迹各大程序员知名论坛中,如GitHub等,能够参与开源最好不过。

  • 交朋友:加一些社群,参加线下面基,结识一些同行朋友,或许能碰撞出一些不一样的代码火花?

写在末尾:一些建议和行业愿景

文章写到这里差不多可以停笔了,但是又好像还想说点什么,或许是对同行的你一些小建议,也或许是对整个行业的一些愿景。

近几年来,铺天盖地而来的“程序员35岁”制造了不少年龄焦虑,试问自己被公司裁员,被社会淘汰真的是年龄导致的吗?大多数还是与自己能力相关,在我接触到的认知里,互联网公司35岁以上的技术经理,技术大牛仍有不少。实际上,无论你是什么行业,能力不过关,都会被淘汰,而避免被淘汰的唯一办法:坚持学习。

以上就是本次给大家分享的内容,更多Java技术干货、学习笔记及Java面试题的朋友可禾多步至👇

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/491440.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

DX算法还原

早在之前作者就写过一篇关于顶象的滑块验证,潦潦草草几句话就带过了。 出于互相学习的想法,给了一个大学生,奈何不讲武德把源码甩群里了,虽然在大佬们眼里不难, 不过拿着别人的东西乱传还是不太好。自认倒霉&#xf…

基于max30102的物联网病房监测系统(传感驱动和数据处理)

目录 一、实物展示 二、主体介绍 三、MAX30102的驱动 四、MAX30102的数据处理 奋斗一个星期,每个引脚都是扒皮焊接然后再把皮包回去的。这几天吸的垃圾气体感觉要少活两年。 一、实物展示 这次吸取上次教训,把线捆起来好多了 二、主体介绍 用的传感…

Python进阶篇

大家好,我是易安!今天我们继续Python的学习,内容稍微有些多,不过我会尽可能举一些例子让你理解。 对象比较与拷贝 在前面的学习中,我们其实已经接触到了很多 Python对象比较和复制的例子,比如下面这个&…

【JVM】面试题总结

JVM 1、JVM 的运行时内存区域是怎样的2、堆和栈的区别3、Java 中的对象一定在堆上分配内存吗4、什么是 Stop The World5、JVM 如何判断对象是否存活6、JVM 有哪些垃圾回收算法7、什么是三色标记算法8、新生代和老年代的GC算法9、新生代和老年代的垃圾回收器有何区别10、Java 中…

【SVN】版本控制管理的文件(夹)如何重命名

目录 一、前言二、操作步骤1. 使用SVN重命名(SVN rename)2. 输入新名称3. 确定重命名4. 立刻进行一次提交(commit)5. 补充 三、可能遇到的问题1. 情况一2. 情况二3. 情况三 一、前言 如果只是在本地的文件系统中修改SVN中的文件&a…

迈巴赫GLS480升级行政四座,享受霸气豪华老板座

头等舱级后排独立座椅可奉上私人飞机般的旅程体验。无论是美观性还是功能性,商务型中央控制台都可为后排乘客带来巨大优势。例如,在电动开启盖板下方贴心地为乘客提供控温杯座以及储物箱。您可在扶手下方为您的智能手机进行无线感应充电。

亚马逊云科技开启您的云财务管理之旅:云财务运营

亚马逊云科技“开启您的云财务管理之旅”系列内容提出了关于如何启动和实施一个成功的云财务管理CFM战略的建议。云财务管理CFM的三个原则:SEE-查看、SAVE-节省和PLAN-计划。接下来介绍的是第四个阶段:RUN-运营。 在这一阶段,可以了解云财务管…

JavaScript全解析——canvas 绘制图片

●在 canvas 内也是可以直接插入一个图片的 ●如果在 canvas 内想插入一个图片 ○首先要用 js 加载一个图片 ○当图片加载完毕以后, 我们在用 canvas 的 API 把它插入到画布上即可 ●先用 js 加载一张图片出来 const myImg new Image() myImg.sec ./01小锋.png // 准备一个加…

数据结构与算法基础(王卓)(33):折半插入排序、希尔排序

目录 折半插入排序 Project 1: 问题:缺少在插入元素之前的移动元素的操作 Project 2:(最终成品、结果) 希尔排序 Project 1:(个人思路) 标准答案:(PPT答案) 解释说明&#xff…

OpenGL(六)——坐标系统

目录 一、前言 二、空间系 2.1 局部空间 2.2 世界空间 2.3 观察空间 2.4裁剪空间 2.5 正射投影 2.6 透视投影 2.7 屏幕空间 三、透视箱子 3.1 创建模型矩阵 3.2 创建观察矩阵 3.3 创建透视投影矩阵 3.4 修改顶点着色器 3.5 传递变换矩阵 四、旋转的箱子 五、好…

面了一圈,还没拿到offer.....

最近收到很多小伙伴的留言,金三银四过完了一个offer都没收到。还有遇到那种特别喜欢怼人的面试官,直接面到怀疑人生,真是让人费解。。。 其实面试受打击是正常的,关键是要在面试中总结自己的不足!提前做好面试准备和技…

java基于知识库的中医药问询系统

本系统主要包含了等系统用户管理、中医药常识管理、科室信息管理、知识库管理多个功能模块。下面分别简单阐述一下这几个功能模块需求。 管理员的登录模块:管理员登录系统对本系统其他管理模块进行管理。 用户的登录模块:用户登录本系统,对个…

简历投了2个月没有面试,看这趋势,不发力是不行了

最近有朋友吐槽,感觉最近好难,简历投了2个月了,面试机会很少,自己每天也费心费力的投,一有新职位就赶紧投,自己也积极的跟人家打招呼,不是看完那边没有回复,要么就是不合适。于是我就…

基于ARM树莓派实现智能家居:语音识别控制,Socket网络控制,火灾报警检测,实时监控

目录 一 项目说明 ① 设计框架 ② 功能说明 ③ 硬件说明 ④ 软件说明 二 项目代码 <1> mainPro.c 主函数 <2> InputCommand.h 控制设备头文件 <3> contrlDevices.h 外接设备头文件 <4> bathroomLight.c 泳池灯 <5> livin…

【GUI】基于Python的文本数据处理(串口解析 0D 0A结尾)

【GUI】基于Python的文本数据处理&#xff08;串口解析 0D 0A结尾&#xff09; 如有串口数据&#xff1a; [37;22mD/NO_TAG [2023-04-24 23:01:06 ] ------------------------------------------------->>>>>> M_DADAT_GET_DAMAGE_INFO [0m 2023/04/24 2…

200左右什么蓝牙耳机比较好?国产200左右蓝牙耳机推荐

随着不少手机厂商取消3.5mm耳机孔&#xff0c;蓝牙耳机便成为了人们外出的最佳选择。最近看到很多人问&#xff0c;200左右什么蓝牙耳机比较好&#xff1f;针对这个问题&#xff0c;我来给大家推荐几款国产的蓝牙耳机&#xff0c;一起来看看吧。 一、南卡小音舱Lite2蓝牙耳机 …

如何防止订单重复支付

想必大家对在线支付都不陌生&#xff0c;今天和大家聊聊如何防止订单重复支付。 看看订单支付流程 我们来看看&#xff0c;电商订单支付的简要流程&#xff1a; 订单钱包支付流程 从下单/计算开始&#xff1a; 下单/结算&#xff1a;这一步虽然不是直接的支付起点&#xff0c;但…

opencv场景识别

opencv场景识别 文章目录 一、需求1、现状2、设想 二、模型使用1、opencv dnn支持的功能2、ANN_MLP相关知识3、MLP图像分类模型训练学习 三、更换方向1、目标检测模型2、darknet网络介绍 四、opencv调用darknet模型1、**darknet模型获取**2、python调用darknet模型3、遇到的一些…

NewBing最新更新使用体验(无需等待人人可用)

NewBing最新更新使用体验 微软Bing爆炸级更新&#xff01;无需等待人人可用&#xff01; 今天&#xff0c;微软突然官宣全面开放BingChat&#xff1a; 无需任何等待。只需注册一个账户&#xff0c;首页即可体验。 NewBing最新更新新特性官方文档 https://www.microsoft.com/en-…

ETL 组件Spark资源设置指导

一、概念介绍 1.RDD RDD&#xff08;Resilient Distributed Dataset&#xff09;:弹性分布式数据集&#xff0c;是Spark中最基础的数据抽象。它本质就是一个类&#xff0c;屏蔽了底层对数据的复杂抽象和处理&#xff0c;为用户提供了一组方便数据转换和求值的方法。 简单来说…