客户端开发一面面经
完整信息
本篇目录
1.核对专业、年级、可实习时长。
2.看你做了一些项目,挑一个你在项目开发过程中遇到的觉得最难的问题,讲一下你是怎么一步步定位和解决的?
3.进程间通信(IPC)有哪些方式?
4.简历里写了 AI 相关实践,有用过 MCP吗?
5.知道 MCP 底层是通过哪种进程间通信方式 来调用工具或访问外部数据的吗?
6.平时使用 Cursor、PE和开发 Agent 时,有深入了解过整个 Agent 的底层架构或执行流程 吗?
7.回到刚才说的 IPC,共享内存和 Socket 分别适合用在什么业务场景?
8.从应用层到系统层,有了解或使用过 Native Buffer、DirectBuffer 或者 ByteBuffer 吗?
9.平时在 Android / Kotlin 开发中是怎么分配内存的?
10.现在有一张图片,把它加载转换成 Bitmap,里面有大量的像素数据,这些像素内容到底是存放在哪块内存上的?
11.Android 整体分哪几块内存区域?
12.了解 JNI 或者 C/C++ 吗?客户端调用底层 C++ 代码是怎么调的?
13.你之前用过第三方 SDK 的 .so 库,它底下对外暴露的是什么接口?
14.底层的 C++ 代码在运行时,它申请的内存是放在哪个区的?归在哪里管理?
15.为什么 Bitmap 像素放在 Native 层可以实现 Kotlin 层与 Native 层的快速共享访问?
16.什么是 缺页中断?
17.讲一下什么是 TCP?有哪些核心特性?
18.详细讲一下 TCP 的三次握手和四次挥手过程。
19.为什么建立连接需要三次握手,而不是两次?
20.为什么断开连接需要四次挥手?
21.IP地址前三个字节和最后一个字节分别代表什么意思?
22.IP 地址后面通常会跟一个 端口号(Port),什么叫端口?端口的作用是什么?
23.什么是 子网掩码?起什么作用?
24.假设你现在在家里连着 Wi-Fi 玩手机,在 App 里点击了一下“购买”按钮,服务端会响应并下发数据:请完整讲一下从你点击 App 按钮开始整个网络数据包的流转过程是怎么样的?
25.你的手机连的是家里 Wi-Fi,处于局域网内,当数据包从公网服务器返回时,它是怎么穿过公网找到你家的路由器,再从路由器精准发给你这部手机的?
26.数据包到了你的手机网卡之后,手机上跑着那么多应用,操作系统是怎么知道该把这个包丢给你的这个 App 程序的?
27.有了解过 WebSocket 和 SSE这两种连接协议吗?
28.Android 里用过 OkHttp 的拦截器,有深入了解过它里面的框架源码实现吗
29.简历里写了性能优化,讲一下 LRU 缓存是什么?你在项目里用它做了什么?
30.LRU 的底层是用什么数据结构实现的? 为什么这么设计?
31.你在项目里设置的 LRU 缓存最大上限 是怎么定的?依据是什么?每个缓存对象大概占多大内存?
32.假设在一个无限滑动的 RecyclerView 图片列表 场景里,不仅有 View 池化,也有图片的 LRU 缓存:如果用户不断往下滑,数据持续增长,且不同用户的手机设备内存大小完全不同,你的池化大小和缓存上限该怎么合理设定?
33.如果用户快速滑动列表,甚至当前 手机系统内存已经非常紧张(Low Memory) 了,而你的 LRU 缓存还在占着内存,这时候应该怎么设计动态释放与回收策略?
34.平时用过 Git 做代码管理吗?
35.讲一下 git rebase 的作用是什么?
36.什么时候用 git rebase,什么时候用 git merge?这两者的核心区别是什么?
37.询问学校成绩排名如何,数据结构、操作系统等专业课大概考多少分?
算法:反转链表(三分钟写出来了)
反问
部分八股没回答出来,过了二十四小时收到感谢信#实习面试记录#
本篇目录
当前问题0139
- 01
核对专业、年级、可实习时长。
- 02
看你做了一些项目,挑一个你在项目开发过程中遇到的觉得最难的问题,讲一下你是怎么一步步定位和解决的?
- 03
进程间通信(IPC)有哪些方式?
- 04
简历里写了 AI 相关实践,有用过 MCP吗?
- 05
知道 MCP 底层是通过哪种进程间通信方式 来调用工具或访问外部数据的吗?
- 06
平时使用 Cursor、PE和开发 Agent 时,有深入了解过整个 Agent 的底层架构或执行流程 吗?
- 07
回到刚才说的 IPC,共享内存和 Socket 分别适合用在什么业务场景?
- 08
从应用层到系统层,有了解或使用过 Native Buffer、DirectBuffer 或者 ByteBuffer 吗?
- 09
平时在 Android / Kotlin 开发中是怎么分配内存的?
- 10
现在有一张图片,把它加载转换成 Bitmap,里面有大量的像素数据,这些像素内容到底是存放在哪块内存上的?
- 11
Android 整体分哪几块内存区域?
- 12
了解 JNI 或者 C/C++ 吗?客户端调用底层 C++ 代码是怎么调的?
- 13
你之前用过第三方 SDK 的 .so 库,它底下对外暴露的是什么接口?
- 14
底层的 C++ 代码在运行时,它申请的内存是放在哪个区的?归在哪里管理?
- 15
为什么 Bitmap 像素放在 Native 层可以实现 Kotlin 层与 Native 层的快速共享访问?
- 16
什么是 缺页中断?
- 17
讲一下什么是 TCP?有哪些核心特性?
- 18
详细讲一下 TCP 的三次握手和四次挥手过程。
- 19
为什么建立连接需要三次握手,而不是两次?
- 20
为什么断开连接需要四次挥手?
- 21
IP地址前三个字节和最后一个字节分别代表什么意思?
- 22
IP 地址后面通常会跟一个 端口号(Port),什么叫端口?端口的作用是什么?
- 23
什么是 子网掩码?起什么作用?
- 24
假设你现在在家里连着 Wi-Fi 玩手机,在 App 里点击了一下“购买”按钮,服务端会响应并下发数据:请完整讲一下从你点击 App 按钮开始整个网络数据包的流转过程是怎么样的?
- 25
你的手机连的是家里 Wi-Fi,处于局域网内,当数据包从公网服务器返回时,它是怎么穿过公网找到你家的路由器,再从路由器精准发给你这部手机的?
- 26
数据包到了你的手机网卡之后,手机上跑着那么多应用,操作系统是怎么知道该把这个包丢给你的这个 App 程序的?
- 27
有了解过 WebSocket 和 SSE这两种连接协议吗?
- 28
Android 里用过 OkHttp 的拦截器,有深入了解过它里面的框架源码实现吗
- 29
简历里写了性能优化,讲一下 LRU 缓存是什么?你在项目里用它做了什么?
- 30
LRU 的底层是用什么数据结构实现的? 为什么这么设计?
- 31
你在项目里设置的 LRU 缓存最大上限 是怎么定的?依据是什么?每个缓存对象大概占多大内存?
- 32
假设在一个无限滑动的 RecyclerView 图片列表 场景里,不仅有 View 池化,也有图片的 LRU 缓存:如果用户不断往下滑,数据持续增长,且不同用户的手机设备内存大小完全不同,你的池化大小和缓存上限该怎么合理设定?
- 33
如果用户快速滑动列表,甚至当前 手机系统内存已经非常紧张(Low Memory) 了,而你的 LRU 缓存还在占着内存,这时候应该怎么设计动态释放与回收策略?
- 34
平时用过 Git 做代码管理吗?
- 35
讲一下 git rebase 的作用是什么?
- 36
什么时候用 git rebase,什么时候用 git merge?这两者的核心区别是什么?
- 37
询问学校成绩排名如何,数据结构、操作系统等专业课大概考多少分?
- 38
核对专业、年级、可实习时长。
- 39
算法:反转链表(三分钟写出来了)
