大厂面试经验实录
2026/8/24大约 4 分钟
大厂面试经验实录
汇总阿里、美团、网易、新浪微博、豌豆荚等公司的真实面试经历,提炼高频考点与面试技巧。
一、阿里巴巴
一面(技术基础)
- 怎么学习 Android 的?项目中遇到哪些问题、如何解决?
- Android 事件分发机制?
- 三级缓存底层实现?
- HashMap 底层实现,hashCode 如何对应 bucket?
- Java 垃圾回收机制,引用计数法两个对象互相引用如何解决?
- 用过的开源框架源码分析。
- Activity 生命周期,异常退出该如何处理?
- TCP 和 UDP 的区别,TCP 如何保证可靠,丢包如何处理?
二面(算法与思维)
- 标号 1~n 的 n 个人首尾相接,1 到 3 报数,报到 3 的退出,求最后一个人的标号(约瑟夫环)。
- 给定一个字符串,求第一个不重复的字符,如
abbcad返回c。
二、美团
一面
- 自我介绍。
- 面向对象三大特性。
- Java 虚拟机、垃圾回收。
- GSON、RxJava + Retrofit。
- 图片缓存、三级缓存。
- Android 启动模式、四大组件。
- Fragment 生命周期、嵌套。
- AsyncTask 机制、Handler 机制。
二面(手写代码 + 原理深入)
- 面试官写程序看错误。
- 判断 GC 引用计数法循环引用会发生什么。
- Android 进程间通信、Binder 机制。
- Handler 消息机制,postDelayed 会造成线程阻塞吗?对内存有什么影响?
- Debug 和 Release 状态的不同。
- 手写 Stack 的 pop 和 push 接口,要求:
- 用基本数组实现;
- 考虑泛型;
- 考虑同步问题;
- 考虑扩容问题。
三、网易杭研
一面
- Android 中 ClassLoader 和 Java 有什么关系和区别?
- JVM 的自动内存管理。
- String 类可以被继承吗?为什么(final)?
- final 能修饰什么?参数里要不要用 final(匿名内部类)?
- Java 中有内存泄漏吗?先讲本质,再结合 handler + 匿名内部类分析。
- 描述 AIDL?觉得 AIDL 有什么缺陷?
二面
- 用过什么开源框架,举一个例子(volley)?
- Activity 生命周期:act1 点击启动 act2,周期如何变化?
- Activity 的 launchMode,有没有结合项目用过?
- View 的绘制原理,有没有用 canvas 自己画过 UI?
- 以后想做什么方向?怎么看前端和后端?
三面(HR)
- 为什么想来网易?有投其他公司吗?
- 网易最吸引你的是什么?想来杭州吗?
四、新浪微博
一面(偏 Java 基础)
- 静态内部类、内部类、匿名内部类,为什么内部类会持有外部类的引用?持有的引用是 this 还是其它?
静态内部类:使用 static 修饰的内部类;匿名内部类:使用 new 生成的内部类。内部类的产生依赖于外部类,持有的引用是
类名.this。
- ArrayList 和 Vector 的主要区别?
Vector:线程同步;元素超过初始大小时容量翻倍。ArrayList:线程不同步但性能好;元素超过初始大小时只增加 50% 的大小。
- Java 中 try catch finally 的执行顺序?先执行 try 中代码,发生异常执行 catch,最后一定执行 finally。
- switch 是否能作用在 byte 上、long 上、String 上?(byte、String 可以,long 不可以)
五、蜻蜓FM
- Toolbar 的使用。
- 如何判断本地缓存数据需要从网络端获取。
- 跨进程间通信。
- Handler 消息机制。
- SharedPreference 实现。
- 快速排序。
- 项目难点。
六、豌豆荚
一面
- 介绍项目、网络框架的搭建、图片加载框架的实现。
- 写个图片浏览器,说出思路。
- 手写代码:有一个 ArrayList 保存整数,编写帮助函数删除容器中小于 10 的元素。
二面
- Activity 的启动模式、事件分发机制。
- 手写代码:股票利益最大化问题(LeetCode 121/122)。
- 手写代码:第一次只出现一次的字符(剑指 Offer)。
三面
- 聊项目,聊大学做过的事。
- 手写代码:反转字符串、字符串中出现最多的字符。
七、高频考点总结
| 类别 | 考点 |
|---|---|
| Java | HashMap 底层、GC 与引用计数、内部类持有外部引用、final、String、try-catch-finally、ArrayList vs Vector |
| Android | 事件分发、三级缓存、Activity 生命周期与启动模式、Fragment、Handler、Binder/AIDL、四大组件、ClassLoader |
| 网络 | TCP/UDP 区别、TCP 可靠传输、Http/Https |
| 算法 | 约瑟夫环、字符串处理、股票买卖、自定义 Stack、反转字符串 |
| 手写代码 | 数据结构实现(考虑泛型、同步、扩容)、算法题 |
面试技巧:
- 先讲本质/原理,再结合项目举例(如内存泄漏结合 Handler + 匿名内部类)。
- 手写代码注意边界条件与异常处理。
- 准备 1~2 个深入研究的开源框架源码。
- HR 面重点展示学习能力、稳定性与求职动机。