春招晚申选手的面试记录(客户端开发方向)已上岸美团
春招的尾声(4.27)才开始投递简历,从一开始焦虑拿不到面试到现在面试太多安排不过来,渐渐也越面越熟练了,记录一下各个公司面试问的题目吧(打算持续更新到找到工作为止)。
最新进展:5.18美团hr面(腾讯会议)5.19早上 美团offer call 下午就发了offer
快手 客户端开发(一个小时) ---> 一面挂
- 了解chatgpt吗 技术方面
- Linux和windows区别
- git命令
- objectiveC和C++区别i
- iOS GCD
- Xcode功能介绍 如何添加图标
- objectiveC的runtime
- 内存管理
- 什么是http
- 手撕代码:编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址
小米 测试开发(大约35分钟)---> 一面通过
- verilog和软件编程的区别
- verilog数据类型有什么区别
- arm汇编 有哪些指令
- sql创建数据库 有哪些常用指令
- python opencv怎么人脸识别 步骤
- tkinter用户界面GUI怎么做的
- 手写代码:tkinte添加标签label、按钮button、文本框entry
b站 安卓客户端开发(一个小时)---> 一面挂
- fork api听过吗
- git command有哪些
- 数据库命令
- sql连接join,left join和right join
- http介绍一下(状态机)
- http状态码302和307区别
- http请求报文换行符号cr+lf
- C++ ‘\r’符号啥意思 比如cout <<”hello worl”<<’\r’<<”123””<<endl输出123 hello world
- C++ endl(清空输出缓冲区)
- 算法:反转链表
小红书 客户端开发(一个小时)---> 一面挂
- Charles抓包原理
- oc内存管理
- oc property关键字有哪些
- C++ vector介绍一下,vector扩容机制是什么
- C++ structural和class的区别
- C++虚函数
- C++析构函数为什么是虚函数
- 计算机网络浏览器url过程
- DNS解析是什么
- 计算机七层模式和四层模型分别介绍一下,有哪些协议
- 路由器和交换机分别在哪一层
- TCP可靠性
- UDP有什么办法可靠吗
- TCP为什么是四次挥手
- UDP有哪些协议
- https是什么,ssl怎么工作,这个整体过程描述一下
- 算法:设计一个LRU缓存约束的数据结构(leedcode146)
美团 客户端开发 (一个小时)---> 一面通过
- 算法题:买卖股票的最好时机(贪心算法)
- Git指令有哪些
- Git把别人分支的一次提交合并到自己分支 用什么command
- OC循环引用以及如何解决
- 深拷贝和浅拷贝区别
- 浅拷贝不额外分配内存地址,深拷贝内存地址是自主分配的
- 浅拷贝指向一个内存地址,深拷贝指向两个不同的内存地址
- 浅拷贝拷贝的是指针,引用计数加1;
- 深拷贝拷贝的是内存,创建新的地址新的对象
- 数据结构栈和队列的区别stack and queue
- 自己最大的优点和缺点
- 自己遇到过的挫折有哪些
insta360 iOS开发 (一个小时)---> 一面通过
- 了解flutter吗(不了解)
- oc和c++区别
- C++子类继承俩个父类的同名函数,怎么知道继承的是哪个,是什么顺序
- C++平行继承
- CPU调度机制(抢占式和非抢占式)
- 死锁是什么 死锁怎么产生(银行家算法听说过吗)
- TCP报文头有哪些内容
- TCP超时和丢包的不同处理(滑动窗口,三次收到同样ACK则数据丢失,需要重传)
- http请求头方式
- http有状态吗
- web如何知道用户是登录状态的(cookie了解吗 cookie的加密机制)
- 了解哪些加密机制 https 如何确保证书合法?
- GET和POST的区别(数据最大容量 请求参数位置等区别)
- 数组和链表的区别 数组查询效率为什么高于链表
- 哈希表 哈希冲突 散列函数 哈希表如何扩容 哈希表阈值是多大
- 快速排序是什么 时间复杂度 什么时候是最坏情况 为什么不稳定
- 归并排序是什么 时间复杂度 为什么稳定
- 二分查找是什么 时间复杂度 前提条件(数组有序)
- 如何判断链表有环 相遇点和入环点是否相同
- 俩个链表相交怎么找
水滴 iOS岗位开发(20分钟)--->还没出结果
- oc的框架 如foundation和uikit库,介绍一下
- 举个例子 说一下UIButton
- Git的flow流,用sourcetree还是git命令行管理的
- swift storyboard是什么
- swift表盘开发
- swift和oc的区别
iHandy iOS开发(1个小时)--->还没出结果
- tcp和udp区别
- tcp如何确保可靠
- 怎么判断链表是否有环,链表环的入口怎么找(不会)
- 怎么判断两个链表相交
- mysql索引是什么 优点和缺点
- iOS runtime是什么
- iOS block和delegate的区别
- block的循环引用 如何解决和避免
- uiview和calayer的关系/区别
- oc NS Timer定时器以及注意事项
- oc GCD是什么(多线程)
- swift和oc的区别
- 自己最大的优点
西山居
- C++ setting关键字
- C++ stl list和map的区别
- C++ 常见容器的时间复杂度(比如map)
- 乱序数组求前10最大的数 用什么算法(归并 时间/空间复杂度多少 如何优化?用插入排序)
- 路径规划A*和dijkstra 深挖一下
- oc和c++区别
- C++多态是什么
- 细说new和malloc的区别
- C++内存泄漏原因和如何解决
- C++野指针原因和如何解决
- C++智能指针是什么
- C++引用计数是什么
- C++ new内存分配在哪?堆(那栈呢?)
- C++动态内存
转转iOS开发岗位(面试50分钟)
- iOS网络请求怎么处理
- http有无状态(如何解决无状态)
- web如何知道用户是登录状态的(cookie了解吗 cookie的加密机制)
- iOS文本输入控件有哪些 UITextField,UITextView
- iOS列表滑动tableview
- tableview卡顿的原因,以及如何优化
- iOS GCD了解过吗
- OC block是什么 用法(回调)
- OC回调的几种方式
- iOS内存管理(ARC,MRC)
- iOS在类中声明属性,strong、weak、copy、assign的区别
- copy和mutablecopy区别
- 堆和栈的区别(new、alloc的角度来说)
- 如何判断链表有环
- static、const和define的区别
- http和https区别
- Charles为什么能看到https请求
- mvc和mvvm架构了解吗,mvvm有什么优点
- iOS数据保存到本地的方法有哪些
广州中望龙腾软件股份有限公司(C++研发)
- C++多态
- C++基类怎么找到派生类
- C++虚函数(以及虚函数表)
- C++析构函数和构造函数分别是虚函数吗 基类析构函数为什么要是虚函数
- C++ inline关键字用法
- C++ map和unordered_map的区别,他们的底层数据结构是什么(红黑树)
- 二叉树如果做到有序
- 哈希表插入删除查找的时间复杂度
- 链表查找的时间复杂度
- 哈希冲突和解决方法
- 操作系统线程和进程的区别
- 堆和栈的空间是独立的吗(堆空间独立,栈空间共享)
- 二叉树的深度优先遍历 如何判断二叉树有序(中序遍历 降序)
- 快速排序的时间复杂度 如何用快速排序找中位数
计蒜客 后端开发
- 计算机网络osm模型和tcp/ip模型区别
- tcp/ip的层级
- tcp和udp的区别以及具体使用场景
- http和https区别,http状态码
- http无状态,如何解决(cookie)
- dns工作原理
- 数据库表格的注意事项
- 关系型数据库和非关系型数据库区别,优缺点,有哪些
- 数据库索引是什么,有什么优缺点
- 数据库索引常见类型
- xxs攻击听过吗
知乎 iOS开发
- oc runloop
- oc runtime
- oc闪退是什么情况,如何解决
- oc栈和堆内存的区别,NSInteger和NSArray分别是在栈内存还是堆内存
- C++指针是什么
- oc gcd是什么(串行 并行队列 同步异步)
- 快速排序是什么 介绍一下
- 设计模式:手动设计观察者notification centre(比如用户滑动推出 这个gesture如何被subject识别 notification传给observer 需要给使用的人一个什么接口)
快手客户端开发
- 虚拟内存和物理内存的区别
- 操作系统的断页中断是什么
- Charles抓包原理(ssl密钥解析的过程)
- git rebase和git merge区别,对git commit有什么不同影响
- 如何加速git clone(镜像访问,镜像地址)
- oc KVO听过吗
- self.name和_name有什么区别,self.name会调用getter/setter方法,而_name并不会调用getter/setter方法,它是直接访问实例变量并赋值,影响KVO(KVO主要就是setter方法)
- tableview动态计算行高(字体大小变化怎么办)
- iOS中的静态库和动态库区别,uikit是什么库(动态库)
- 系统的库都是动态库,自己建立的or第三方库才是静态库
- 后端可以通过一个接口新增动态库吗?不可以,苹果不同意,拿不到密钥,有安全隐患
- xcode断点调试的原理和过程,怎么定位到断点的行
- 算法:删除单链表倒数第n个节点
百度-->测试开发(百度钱包部门)
- 支付场景的测试用例设计
- 进程和线程的区别
- 支付场景,查询100张表中states=4的数据,有什么办法优化性能,用sql写,可以结合python
地平线
- 算法题:三元组合为1
- 算法题:机器人求路径数(动态规划,二维跳楼梯)
- 堆和栈区别,分别如何初始化和释放
- python字典的时间复杂度是多少
insta360二面
- 实习中印象深刻的项目
- oc网络请求有哪些方法
- oc网络请求 请求下载文件
- oc同步异步asyn和syn输出顺序
- asyn异步因为不会等待、直接执行,所以可能会乱序(顺序不确定)
- syn同步一次只能执行一个,所以顺序是固定的
- 线程通信
- 抢占式和非抢占式调度机制
- 堆排序介绍一下
- oc能不能有重复名字的方法(不能,oc不支持重载)
理想汽车 --->C/C=++操作系统开发
- 进程调度机制
- 进程有哪些状态
- linux查看进程状态的指令
- TCP UDP区别
- TCP为什么三次握手 四次挥手(为什么四次挥手不能合并成三次)
- 笔试(C++)
- 输入5x5二维矩阵,每个点都随机0、1,另一个是(x,y)坐标=(2,3)。
- 输出以x y为中心,在matrix对应0、1,假设是1的话。求解周围和它连着的值一样的坐标点。