2019春招
腾讯一面
- 算数表达字符串计算结果
- 堆栈区别,为什么栈从高到低
- 哈希表为什么可以实现O(1)查找复杂度
- 网络大端,小端
- 多线程为什么会死锁
- OSI七层+协议,4G和5G工作那一层
- Objective-C的property,block底层实现原理
蚂蚁金服
一面
电话45min
- 自我介绍
看你的简历上有学过ML课程,讲一下里面的算法吧
- 怎么进行线性回归,过拟合与欠拟合
- 线性回归和逻辑回归区别,具体用来作什么
- 分析具体问题
- 具体讲一下做的项目
提问:如果有机会实习,平时工作状态?
二面
电话25min
- 自我介绍
- 网络请求的封装
- MVC与MVVM
- 具体不记得
提问:如果有机会实习,平时工作状态?
三面
电话20min
- 自我介绍
- 平时开发遇到的问题,如何解决(个人项目一个小bug,解决过程),从中的启发
- 算法:n个图,不同高度,要求找一个合适的高度进行流布局,如何找?
- 英语怎么样
- 以后学习打算
提问:请问还有后续面试吗?
HR四面
- 自我介绍
- 详细谈谈你的项目以及担任角色
- wwdc奖学金详情
- 英语怎么样,平时英文用的多吗,考雅思的初衷
- 下面我们用英文来场对话(具体问的很长,大概问题如下)
- Why do you choose Alipay?
- Your career plan?
- 平时成绩,排名怎么样,在校表现
- 你把大部分时间花在了你喜欢的事物上,你又如何看待与权衡这些和你学校的课程等
- 可实习的时间
提问:
实习期间的一个大概工作状态
实习期间的补贴等
如果有机会实习,大概多久会有offer(骗子HR)
五面补面
- 自我介绍
- 负责项目相关
- 项目的架构,网络请求的封装(简历上)
- pod install和update区别,~>指定版本号如何确保最适并兼容的版本
- 最近遇到的困难,如何解决,细聊
- 项目中MVC与MVVM细聊
- MRC与ARC区别和原理
没给提问机会
钉钉一面
- 介绍一下平时怎么学习iOS的
- ARC与MRC区别
- 你说到了Runloop,他是个什么东西
- 聊聊你的项目,为啥你的个人app打开就闪退
- 怎么追踪崩溃信息,函数调用堆栈
- 多线程用过啥,GCD与OperationQueue区别
- ABCD四个任务,怎么先让AB并发执行完了再执行CD,如何在里面加锁
- 操作系统如何分配任务(调度算法)
- HTTP,TCP和Socket联系
- 算法:快排,1亿个数找到前一万个最大的
- wwdc的session都看过吗
2019秋招[补录]
阿里校招补面Oct 22
就着简历问,几乎简历上写啥问啥,所以个人认为很多面试都是以简历的内容为中心,然后作一些拓展
e.g.
简历上写了MVVM,讲一下你理解的MVVM,数据的流向等等到底是什么
简历上写了对离评渲染的优化,仔细讲一讲是怎么优化,怎么用Instrument调试的
美团(ReactNative方向?)Nov 6
核心问题:你简历上写了你崇尚Swift,那你说说
- 你看过Swift源码嘛(几乎没有)
- 对SwiftUI了解怎么样(还没系统的开始学)
- 值类型和引用类型的区别(balabala)
- 你说的写时拷贝机制到底是什么(balabala不太记得了)
- Swift和Objective-C的一切区别以及各自优缺点(balabala)
如果我要把你招过来,你的工作强度非常高你能承受得了吗?
答:不能,快滚,再问老子打死你🐶
或者说给你安排你并不想做的或者枯燥无味业务(RN)呢?
再您的见👋那您问我Swift看没看过源码是几个意思?
滴滴
我们这边一共给你安排四轮,你这边可以吧?可以
一面
把简历上写的每一条,对应的那一面的知识点全问了一遍
包括但不限于:
- 离屏渲染
- hitTest和pointInside其中的响应链怎么传递怎么识别手势,点击屏幕时的封IOHIDEvent手势到分发SpringBoard到进程间通信port转发等等那一套
- 信号量的使用和概念,操作系统内的进程间通信的方法
- 逆向反编译重签名动态库注入以及你用逆向干了什么
你有什么想问的:没有
二面
开始完全不按常规出牌,面试体验前所未见
- 自我介绍
- 你有什么想了解我们的
- 你对我们这边有什么想法,有什么打算,尽情说
- 感觉你来北方的欲望不是很强啊,是因为地域原因吗还是什么
- 你现在有多少offer了
全程几乎我在提问,是让我提出问题面试官来给我解答,除了自我介绍
三面
更加迷,这让我对面试产生了一些误解
- 自我介绍
- 你为什么想要换工作,你觉得你现在的工作哪里不好
- 看你写了个框架,你都干了些什么呢,这个框架都参考了哪些
- 你最大的优点是什么,最大的缺点呢
- 你平时喜欢干嘛
- 你现在实习,别人对你的评价怎么样,公司的氛围怎么样
- 你导师对你工作的评价,平时工作上怎么指导你
- 你现在有多少offer了
提问:
我感觉最近面试进度有点慢啊,这是为啥呢😒
答:因为最近比较忙哈😅
字节跳动(深圳疯狂招)
一面+二面
一面面试官非常凶,好像带一点湖南口音,隔了十分钟之后的二面就比较和蔼,当时一面好多没回答上来感觉
算法:
- BST找到第k小的节点
- 反转链表
底层原理篇(被问到的时候受到了一点惊吓)
- NSObject内存布局,里面有什么
- Person对象里两个property,实例对象占多少字节以及详细分析
- weak的原理以及它是怎么实现的
- KVO是怎么实现的
- assign和weak的区别,用assign修饰OC对象会怎么样
逆向:
- 重签名动态库注入原理
- 讲讲逆向你都干了些什么
- 动态库静态库详细区别
简历其他相关:
- 看你简历上写到了,那就讲讲离屏渲染(参考即刻发的一篇技术博客)
- 如何检测fps
框架篇:
- 你写的框架是干嘛的,有什么功能,和系统的比有什么区别或者特点
- 函数式编程的思想和响应式编程
- 框架和App都适配了Dark Mode,它们是怎么实现的
- iOS13里面相关的都有哪些新API(参考WWDC19 session)
- 你的框架用了CI,具体是怎么部署的
业务相关:
- 我们头条的App有好几百个页面,你觉得怎么才能尽量快的优化适配Dark Mode,有哪些方案
我说了可以运用KVO,runtime之类的动态替换,这些也许可以快速达到效果,但是细节可能会非常差劲。至于用一个Hex值来设置颜色不可取
个人觉得最好的解决方案是(大小项目都适用):
定义一套UIColor的规范作为extension,类似于一个Mediator,所有代码中设置颜色的部分全部要从这个颜色规范的extension里面来取到,禁止直接使用系统的UIColor的API
面试官反问:这几百个页面,太多了太难改了,那我能不能有更好的办法呢?
~~对不起,没有~~
内心BB:你设置颜色的方法都不统一🙅♂️这不就是代码不规范吗?
你们要不要参考一下为什么国外Twitter电报一堆App早就完美适配好了Dark Mode,为什么国内微信或者其他什么什么乱七八糟的App还搞得那个腔调,久久不能适配好呢,到现在晚上我玩个手机还眼睛疼呢🤬
Swift相关:
- 类和结构体的区别(值类型的写时拷贝)
- map和filter的区别,以及flatMap
- UIButton addTarget时加@objc注解的原因
- 写一个min函数,要求尽量通用(想出了一个简单可以使用<T: Comparable>)
现在你有多少offer了?
三面
- CALayer与UIView的联系(底层原理)
- 如何让UIView在进行动画的时候能检测到点击事件
- 为什么说Swift快而且安全
- unowned与weak的区别
- 抖音首页下拉刷新如何优雅地实现
- app里请求网络除了HTTP通信还有什么通信协议
- ......
四面
- n个有序链表,长度都为k,进行合并
- 为什么数组声明了atomic是没有用的
- 自旋锁和互斥锁的区别
- iOS里面你了解几种hook
- 听说过inline hook吗(递归函数可以进行inline吗)
- AB两人玩抛硬币,谁抛到正面谁赢,A先抛,赢得概率是多少?(2/3)
Copyright © 2019 Weslie. All rights reserved.
丁丁的第四个问题太逗了/xk
哈哈哈哈哈哈,我跟他说是因为网络原因@(黑线)这个bug发现好久了但是还没来得及去解决
太难了 大厂再见👋