学渣阿粉的首次阿里面试之路

简介: Hello 大家好,我是鸭血粉丝,今天跟大家分享一下阿粉我的阿里巴巴面试经历,由于阿粉记忆不好,部分题目忘记了,另外只列出相关题目,部分提供思路,具体的答案请大家自行在家解答,毕竟大部分同学距离开工还有几天时间,这几天可以不用数大米了,来做做题吧。

突如其来的一面

  1. 电话预约:阿里的电话总是那么突然,经常在上班上的好好的时候,就突然来了说个杭州的座机电话,接的多了看到就可以猜到。大家习惯就好,一般面试官会提前打电话预约时间,可以预约一个自己合适的时间,因为阿粉我加班比较多,所以预约的都是晚上 9,10 点~,不得不说,阿里的面试官也挺辛苦的。
  2. 介绍自己:常规流程,简单介绍自己的毕业院校,工作经历以及一些兴趣爱好,提交准备好,多背几遍。
  3. 介绍自己做的项目:按照自己熟悉的项目流程框架去逐步介绍,项目主要做了什么,用了什么,这里一定要讲自己熟悉的部分,因为面试官会根据你提到的技术点展开后续的问题,千万不要给自己挖填不了的坑。我这边介绍的时候提到了 Kafka,所以后面面试官问了好几个 Kafka 的问题,所以一定要说自己熟悉的技术。
  4. 项目中最有难度和记忆最深刻的项目:这个问题按照实际去回答就好,可以说自己做过的但不一定是最难的,可以是自己最熟悉的,觉得有亮点可以说的,避免讲不了几句就没话可说的情况。
  5. Hashmap 原理:Java 面试的必问问题,不需要多说什么了。这里需要注意,不能只看到表面现象,需要学会多延伸问题,从 Hashmap 可以延伸到 HashTable,ConcurrentHash,以及线程安全等问题。
  6. 底层红黑树是什么?什么是红黑树:这个问题就是对上面问题一个很好的补充,Hashmap 在 Java8 的时候,会将链表在长度大于8的时候进行链表转红黑树,那么同样这也是一个延伸问题。红黑树:是一种平衡二叉查找树,
  7. ArrayList 与 LinkedList的区别:回到插入数据和存储数据时的区别,底层的数据结构等。
  8. ArrayList 扩容的过程是什么样子的
private void grow(int minCapacity) {
        // overflow-conscious code
        int oldCapacity = elementData.length;
        int newCapacity = oldCapacity + (oldCapacity >> 1);
        if (newCapacity - minCapacity < 0)
            newCapacity = minCapacity;
        if (newCapacity - MAX_ARRAY_SIZE > 0)
            newCapacity = hugeCapacity(minCapacity);
        // minCapacity is usually close to size, so this is a win:
        elementData = Arrays.copyOf(elementData, newCapacity);
    }

elementData默认大小为 10,每次扩容采用原始大小加上原始大小的一半

  1. 常用排序算法和时间复杂度
排序名称 稳定性 平均时间复杂度 最好时间复杂度 最坏时间复杂度
桶排序 不稳定 O(n) O(n) O(n)
基数排序 稳定 O(n) O(n) O(n)
归并排序 稳定 O(nlogn) O(nlogn) O(nlogn)
快速排序 不稳定 O(nlogn) O(nlogn) O(n^2)
堆排序 不稳定 O(nlogn) O(nlogn) O(nlogn)
冒泡排序 稳定 O(n^2) O(n) O(n^2)
选择排序 不稳定 O(n^2) O(n^2) O(n^2)
  1. 快排的实现原理:双指针,建议在纸上自行手写实现,这样才容易记牢。
  2. Kafka 事务处理机制
  3. Kafka 消息重复消费如何处理
  4. Kafka 如何保证消息的可靠性
  5. 线上FullGC 处理方法
  6. 垃圾回收介绍下
  7. 多进程和多线程有什么区别
  8. 类加载机制
  9. 开发过程中关于规范的代码有什么好的可以分享
  10. Spring 解决循环依赖

一面相对来说是比较偏技术细节的,从语言本身到 JVM,再到框架和工具都有涉及。

二面

二面的电话,同样还是那么的突如其来。。。二面的内部比较宽泛,偏项目和个人发展,没有标准答案,大家自行思考即可。

  1. 介绍自己,并介绍一下自己做的项目
  2. 自己主要负责哪块内容,其中印象最深刻的项目是什么
  3. 项目中遇到的最难的问题是什么,怎么解决的,
  4. 项目在生产上有没有遇到过问题,是什么样子的问题以及如何解决的
  5. 有没有因为 bug 或者其他原因导致的线上问题
  6. HashMap 与 ConcurrentHashMap的区别
  7. 线程池的实现原理
  8. GC 垃圾回收器的理解
  9. 慢 SQL 优化有什么建议
  10. Kafka 的基本组件和消息流程
  11. 使用 Redis 如何实现一个分布式锁
  12. 本人觉得工作这么久对业务有什么重大的贡献
  13. 项目小组有多少人,个人觉得自己在小组中是什么样的位置
  14. 工作这么久觉得业务上有什么缺陷,怎么优化
  15. 是否有参与项目架构的讨论和设计
  16. 业余时间一般做些什么
  17. 有 Github 账号,那GitHub 上印象最深刻的项目是什么

从二面的题目上可以看得出,考察的是各方面的能力,项目经历和设计能力,沟通能力以及学校能力,可谓是方方面面都在考察。

结语

二面过去了很久还没接到电话,阿粉我就知道肯定是到此为止了。哎,很遗憾阿粉我就进行到了二面,没机会给大家介绍三面的内容了,不过阿粉我会努力的!争取下次给大家分享三面的内容。

虽然阿粉这次失败了,但是阿粉我并没有气馁,只能说明阿粉还有很大的进步空间,下次再战!

最近疫情严重,在家待着哪里都不能去,刚好阿粉要在我好好学习学习,争取等到疫情结束过后再次冲击!

End

相关文章
|
5月前
|
Python 开发工具
2024年Python最全使用Python实现音频双通道分离,2024年最新阿里p7面试难度
2024年Python最全使用Python实现音频双通道分离,2024年最新阿里p7面试难度
2024年Python最全使用Python实现音频双通道分离,2024年最新阿里p7面试难度
|
5月前
|
机器学习/深度学习 Python 算法
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
最新【Python 百练成钢】时间调整、二进制数、回文素数、字母距离(1),2024年最新2024年阿里Python岗面试必问
|
10天前
|
缓存 监控 NoSQL
阿里面试让聊一聊Redis 的内存淘汰(驱逐)策略
大家好,我是 V 哥。粉丝小 A 面试阿里时被问到 Redis 的内存淘汰策略问题,特此整理了一份详细笔记供参考。Redis 的内存淘汰策略决定了在内存达到上限时如何移除数据。希望这份笔记对你有所帮助!欢迎关注“威哥爱编程”,一起学习与成长。
|
5月前
|
PHP Python
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
最新【Python】 实现循环最快的方式_python while循环加速,2024年最新阿里php面试题
|
2月前
|
JavaScript
给原始数据类型加属性和方法为什么不会报错?包装类——阿里面试题
给原始数据类型加属性和方法为什么不会报错?包装类——阿里面试题
|
5月前
|
算法 Java 应用服务中间件
阿里面试:说说自适应限流?
限流想必大家都不陌生,它是一种控制资源访问速率的策略,用于保护系统免受过载和崩溃的风险。限流可以控制某个服务、接口或系统在一段时间内能够处理的请求或数据量,以防止系统资源耗尽、性能下降或服务不可用。 常见的限流策略有以下几种: 1. **令牌桶算法**:基于令牌桶的方式,限制每个单位时间内允许通过的请求量,请求量超出限制的将被拒绝或等待。 2. **漏桶算法**:基于漏桶的方式,限制系统处理请求的速率,请求速率过快时将被限制或拒绝。 3. **计数器算法**:通过计数器记录单位时间内的请求次数,并根据设定的阈值进行限制。 通过合理的限流策略,可以保护系统免受恶意攻击、突发流量和资源
54 4
阿里面试:说说自适应限流?
|
3月前
|
消息中间件 前端开发 NoSQL
阿里面试:说说@Async实现原理?
阿里面试:说说@Async实现原理?
28 0
|
5月前
|
SQL 分布式计算 前端开发
2024年最全用python写一个自动生成春联的软件,打包exe,2024年最新阿里p8面试题和答案
2024年最全用python写一个自动生成春联的软件,打包exe,2024年最新阿里p8面试题和答案
2024年最全用python写一个自动生成春联的软件,打包exe,2024年最新阿里p8面试题和答案
|
5月前
|
设计模式 Oracle Java
阿里面试:NIO为什么会导致CPU100%?
在 Java 中总共有三种 IO 类型:BIO(Blocking I/O,阻塞I/O)、NIO(Non-blocking I/O,非阻塞I/O)和 AIO(Asynchronous I/O,异步I/O),它们的区别如下: 1. 在 JDK 1.4 之前,只有 BIO 一种模式,其开发过程相对简单,新来一个连接就会创建一个新的线程处理,但随着请求并发度的提升,BIO 很快遇到了性能瓶颈。 2. 所以在 JDK 1.4 以后开始引入了 NIO 技术,NIO 可以在一个线程中处理多个 IO 操作,提高了资源的利用率和系统的吞吐量。 3. 而到了 JDK 1.7 发布了 AIO 模型,它可以实现当线
74 0
|
5月前
|
Python
2024年最全用Python写了一个电子考勤系统_用python写一个宿舍考勤系统,2024年最新1307页阿里Python面试全套真题解析在互联网火了
2024年最全用Python写了一个电子考勤系统_用python写一个宿舍考勤系统,2024年最新1307页阿里Python面试全套真题解析在互联网火了
下一篇
无影云桌面