阿里一面,凉透了!

科技   2024-11-12 13:52   湖北  

你好,我是 Guide。今天来分享一篇阿里的校招凉经,大家感受一下难度如何。

下面是正文。

岗位:阿里,研发工程师 JAVA

面试情况

  • 电话一面, 70+min
  • 简历做好以来的第一次面试,Java 是本科用的,硕士都做 Python 去了,简历上也都是 Python 相关的项目,所以准备的基础不是很充分,有点紧张。
  • 面试官很赞!!不会的问题也会慢慢引导你去思考和回答。主要的内容是计算机基础相关的一些问题,但涉及的面比较广,有些问题也会问的很深,看你是否了解底层原理,不了解的话就不会继续深入问了。

面试问题

回忆一些主要问到的问题(项目中的细节就略去了,不同项目面试官的关注点应该也不一样,感觉大部分会针对项目中的困难和解决方案深挖)。

个人情况和项目:

  1. 自我介绍
  2. 大学主修的课程
  3. 项目中遇到的困难?怎么解决?
  4. 项目部署和维护相关的问题

数据库:

  1. 事务的四大特性?事务的隔离级别?如何实现?
  2. 索引的作用?优缺点?底层数据结构?
  3. B+树?(B 树也称 B-树,全称为 多路平衡查找树 ,B+ 树是 B 树的一种变体。B 树和 B+树中的 B 是 Balanced ,也就是平衡的意思)
  4. 二级索引?(二级索引的叶子节点存储的数据是主键的值,也就是说,通过二级索引可以定位主键的位置,二级索引又称为辅助索引/非主键索引。唯一索引,普通索引,前缀索引等索引都属于二级索引)
  5. 数据库的范式?(数据库范式有 3 种:1NF、2NF、3NF)

Java 基础:

  1. 底层 HashMap 是怎么实现的?(JDK1.8 之前 HashMap 由数组+链表组成的,数组是 HashMap 的主体,链表则是主要为了解决哈希冲突而存在的。JDK1.8 以后在解决哈希冲突时有了较大的变化,当链表长度大于阈值 8,将链表转化为红黑树,以减少搜索时间。需要注意:将链表转换成红黑树前会判断,如果当前数组的长度小于 64,那么会选择先进行数组扩容,而不是转换为红黑树)
  2. HashMap 的长度为什么是 2 的幂次方?
  3. 集合底层相关的类?看过源码?( JavaGuide 网站上有ArrayListLinkedListHashMapConcurrentHashMapLinkedHashMap等 9 个常见集合的源码深入解读)
  4. 接口和抽象类的区别?(接口主要用于对类的行为进行约束,你实现了某个接口就具有了对应的行为。抽象类主要用于代码复用,强调的是所属关系。并且,一个类只能继承一个类,因为 Java 不支持多继承。但一个类可以实现多个接口,一个接口也可以继承多个其他接口)

计算机网络:

  1. 输入一个 URL,背后经过了哪些环节?
  2. SpringBoot 自动配置的原理?[1]
  3. Spring 的 Bean 是线程安全的吗?

操作系统:

  1. 进程有哪些状态?状态之间是怎么转换的?
  2. 用户态和核心态的区别?
  3. CPU 的上下文?CPU 的上下文切换?
  4. 线程读文件,读取的过程中会涉及到 CPU 的上下文切换吗?为什么?
  5. 死锁的概念?产生死锁的四个必要条件?
  6. Linux 系统的基本操作指令?

文章推荐:2.1 万字详解操作系统常见面试题

数据结构:

  1. 单链表、双向链表是怎么实现的?循环链表?单链表的时间复杂度?[2]
  2. 二叉树的数据结构?红黑树?红黑树的时间复杂度?[3]

其他:

  1. 最近在看什么书?研究什么内容?
  2. 反问:...(培养机制、面试评价)

参考答案

上面的面试问题几乎都可以在《Java 面试指北》JavaGuide 这两份资料中找到。

参考资料
[1]

SpringBoot 自动配置的原理?: https://javaguide.cn/system-design/framework/spring/spring-boot-auto-assembly-principles.html

[2]

单链表、双向链表是怎么实现的?循环链表?单链表的时间复杂度?: https://javaguide.cn/cs-basics/data-structure/linear-data-structure.html

[3]

二叉树的数据结构?红黑树?红黑树的时间复杂度?: https://javaguide.cn/cs-basics/data-structure/red-black-tree.html


📌Java 后端技术面试准备强烈推荐《Java 面试指北》 和 JavaGuide ,400 多人参与维护完善,质量非常高。另外,目前的面试趋势是场景题变多,可以参考《后端面试高频系统设计&场景题》(20+高频系统设计&场景面试题)进行准备!

⭐面经合集《Java 后端面经精选》


专属面试小册/一对一交流/简历修改/专属求职指南,欢迎加入我的知识星球 ,和 3w+球友一起准备面试!

JavaGuide
JavaGuide(javaguide.cn)官方公众号,专注分享原创Java技术干货。
 最新文章