字节教育android客户端一、二、三面面经
一面
- 自我介绍
- const和define的区别,有什么优势?
- 指针和引用的区别
- 进程和线程的区别,各自适用的场景
- 程序的地址保存的是虚拟地址还是物理地址?
- 内存泄漏
- TCP与UDP的区别
- HTTP请求过程
- 数字证书有哪些?
- 算法:寻找无序数组的中位数
- 问我想了解啥吗
二面
- 依然是自我介绍
- HTTP中POST和GET的区别
- 输入一个 url 回车到获得响应,经过哪些层,分别涉及什么协议?
- TCP和IP属于什么层?TCP挥手握手?
- 堆和栈都是存什么数据的,怎么存储的?
- 栈里除了存函数参数和局部变量还能存放什么?(临时变量)
- 数组和链表的区别
- 知道自旋锁吗?和互斥锁有什么区别?
- 继承与多态
- 算法:输出一个有序数组中一个数字的第一次出现的位置或者返回-1
- 反问环节
三面
- 还是自我介绍
- vector的实现
- static关键字的作用
- explicit关键字的作用
- 死锁的条件(忘了互斥这一点)
- 一个线程会死锁吗?我说不会。。他说如果我说会,你能想到是什么原因吗?我说想不到。。
- hashmap的实现,冲突时除了链表还有什么方法,读的时间复杂度
- 所读过的开源框架及其原理
- 算法:N个长度为K的有序链表合并,时间复杂度,空间复杂度
- 算法:找出一个字符串最长不包含重复字符的字串的长度。
- 反问环节