小米 2025秋招 一面 工厂
好的,这是一份根据你提供的对话整理的Java后端开发面试经验(面经),还原了面试流程、技术问答和核心考察点。
#发面经攒人品##发面经攒人品##面经#
-----
### **小米Java后端实习岗面试经验**
**面试时间:** 约25分钟
**面试形式:** 语音面试
-----
#### **一、开场与项目经历深挖 (约10分钟)**
面试官非常直接,在简单的问好和确认身份后,直接切入简历中的实习经历。
**面试官:** 看你最近在XXX实习过,能具体讲讲吗?
**我:** (介绍了自己所在的团队和业务)XXX
**面试官:** 你在里面具体做了什么事?
**我:**
实习部分 省略
布隆过滤器 缓存穿透 分库分表
-----
#### **二、Java基础知识考察 (约5分钟)**
面试官通过在线聊天窗口打字的方式,开始考察Java基础。
**问题1:字符串比较**
面试官打出代码:
```java
String a = // ... some string initialization
if (a == "Hello") {
// ... do something
}
```
**面试官:** “这样写代码有问题吗?”
**我:**
* “有问题,这里应该用`.equals()`方法进行比较,而不是用`==`。”
* (尝试解释原因)“`==`对于引用类型,比较的是对象的内存地址。而`.equals()`方法(在String类中被重写后)比较的是字符串的内容是否相同。”
* *(自我复盘:当时解释得有点磕巴,一开始把两个的作用说反了,但很快纠正了过来。核心点答对了,但表达不够流畅。)*
**问题2:浮点数比较**
面试官接着打出代码:
```java
double a = 2.0;
if (a == 2) {
// ... do something
}
```
**面试官:** “这样可以吗?”
**我:**
* “我觉得这样应该是可以的。”
* *(自我复盘:这是一个经典的陷阱题。虽然`2.0 == 2`在Java中会返回`true`,因为整数`2`会被自动类型提升为`double`。但面试官实际想考察的是浮点数精度问题。更严谨的回答应该是:‘对于简单的、可以精确表示的浮点数,这样做没问题。但通常不推荐使用==直接比较两个浮点数,因为计算机存储浮点数存在精度误差,应该使用一个极小的阈值(epsilon)来判断两者之差的绝对值是否足够小。’)*
-----
#### **三、算法题 (约10分钟)**
赎金信 改编版, 在一个数组中找到只存在一次的数。
-----
#### **总结**
这次面试整体节奏较快,问题由浅入深,比较典型。
1. **项目经历是重点:** 面试官非常关注你在实习项目中具体做了什么、遇到了什么问题、如何解决的、以及最终产出了什么价值。能够清晰地表达出项目的\*\*背景(Problem)、方案(Action)、结果(Result)\*\*非常重要。
2. **技术深度:** 对于简历上写的技术点,如“Redis优化”,一定要准备好被深挖,能够讲清楚其原理、实现细节和选型考量。
3. **基础知识需扎实:** Java基础(如`==` vs `equals`,浮点数比较)是必考题,不仅要知其然,还要知其所以然,能清晰准确地表达出来。
4. **算法能力:** 对于经典的算法题,要能迅速给出最优解法,并准确分析其时空复杂度。在沟通思路时,尽量主动、完整地把整个解法流程和优缺点都讲清楚。
#发面经攒人品##发面经攒人品##面经#
-----
### **小米Java后端实习岗面试经验**
**面试时间:** 约25分钟
**面试形式:** 语音面试
-----
#### **一、开场与项目经历深挖 (约10分钟)**
面试官非常直接,在简单的问好和确认身份后,直接切入简历中的实习经历。
**面试官:** 看你最近在XXX实习过,能具体讲讲吗?
**我:** (介绍了自己所在的团队和业务)XXX
**面试官:** 你在里面具体做了什么事?
**我:**
实习部分 省略
布隆过滤器 缓存穿透 分库分表
-----
#### **二、Java基础知识考察 (约5分钟)**
面试官通过在线聊天窗口打字的方式,开始考察Java基础。
**问题1:字符串比较**
面试官打出代码:
```java
String a = // ... some string initialization
if (a == "Hello") {
// ... do something
}
```
**面试官:** “这样写代码有问题吗?”
**我:**
* “有问题,这里应该用`.equals()`方法进行比较,而不是用`==`。”
* (尝试解释原因)“`==`对于引用类型,比较的是对象的内存地址。而`.equals()`方法(在String类中被重写后)比较的是字符串的内容是否相同。”
* *(自我复盘:当时解释得有点磕巴,一开始把两个的作用说反了,但很快纠正了过来。核心点答对了,但表达不够流畅。)*
**问题2:浮点数比较**
面试官接着打出代码:
```java
double a = 2.0;
if (a == 2) {
// ... do something
}
```
**面试官:** “这样可以吗?”
**我:**
* “我觉得这样应该是可以的。”
* *(自我复盘:这是一个经典的陷阱题。虽然`2.0 == 2`在Java中会返回`true`,因为整数`2`会被自动类型提升为`double`。但面试官实际想考察的是浮点数精度问题。更严谨的回答应该是:‘对于简单的、可以精确表示的浮点数,这样做没问题。但通常不推荐使用==直接比较两个浮点数,因为计算机存储浮点数存在精度误差,应该使用一个极小的阈值(epsilon)来判断两者之差的绝对值是否足够小。’)*
-----
#### **三、算法题 (约10分钟)**
赎金信 改编版, 在一个数组中找到只存在一次的数。
-----
#### **总结**
这次面试整体节奏较快,问题由浅入深,比较典型。
1. **项目经历是重点:** 面试官非常关注你在实习项目中具体做了什么、遇到了什么问题、如何解决的、以及最终产出了什么价值。能够清晰地表达出项目的\*\*背景(Problem)、方案(Action)、结果(Result)\*\*非常重要。
2. **技术深度:** 对于简历上写的技术点,如“Redis优化”,一定要准备好被深挖,能够讲清楚其原理、实现细节和选型考量。
3. **基础知识需扎实:** Java基础(如`==` vs `equals`,浮点数比较)是必考题,不仅要知其然,还要知其所以然,能清晰准确地表达出来。
4. **算法能力:** 对于经典的算法题,要能迅速给出最优解法,并准确分析其时空复杂度。在沟通思路时,尽量主动、完整地把整个解法流程和优缺点都讲清楚。
全部评论
相关推荐
09-15 13:39
四川大学 Java 点赞 评论 收藏
分享