春招晚申选手的面试记录(客户端开发方向)已上岸美团

春招的尾声(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的话。求解周围和它连着的值一样的坐标点。

#在牛客分享我的求职旅程##美团##快手##bilibili##春招#
全部评论
加油加油
1 回复 分享
发布于 2023-05-12 14:30 北京

相关推荐

10 49 评论
分享
牛客网
牛客企业服务