iOS面试梳理 - 2020年8月初

作者: iOS开发面试题技术合集 | 来源:发表于2020-09-02 16:21 被阅读0次

    原文作者:🐻我是熊大
    原文地址:https://xiaozhuanlan.com/topic/8536142907

    本次面试周期为一周,准备时间为一周。

    本次面试共投递25家,约面11家,最后大厂只面了360、字节,实际面了9家,收到4家offer。

    事实证明:iOS有人要,很香。

    说明:16年毕业,非重点大学,非计算机专业,本科

    经过这次面试,对自己的定位又有了更多的认知,由于之前工作经验的原因,音视频这块将会成为我今后的主要方向,下一次希望能做到一个资深iOS音视频工程师,我也会把更多时间放到这上面。

    确实算法能考察一个人的聪明程度,这段时间完全被女票碾压,好在算法多做一些,总结规律,也能把人训练的更聪明,像奥数一样。

    建议大家用C写算法题;平时leetcode也用C。

    主观面试感受


    • 最右印象较差,面试官不nice;
    • 360最佳,很细心,很喜欢他们的leader;
    • 其他公司均不错
    • 几乎每一家都有算法题,但整体难度不大(大部分是动态规划+树的遍历)

    360 音视频岗位


    主观评价:面的是音视频中台的岗位,本以为HR会推荐业务岗,准备不充分

    一面:

    • 以往直播和相机的业务考察
    • AVFoundation、GPUImage
    • 两道算法题(追问优化)

    二面:

    • AVPlayer实现原理、数据缓存
    • OpenGL ES 处理流程
    • 硬编、软编
    • 直播整体流程
    • 滤镜实现原理

    然后回去让我等通知,说一周内。

    抖音 业务岗


    主观评价:吐槽下,猎头给我很多面试题,让我背,结果一个都没遇到; 希望大家遇到一个好的面试官

    • 大数相加
    • 树的遍历(递归,队列两种方式)
    • 事件响应机制(传递链、响应链、手势)

    算法写出来了但花了50分钟,然后一个小时就过去了,我。。。能力不足,leetcode还要继续。

    天真互动


    主观评价:这家虽然是创业公司,有三面,算上HR是4面,最后一面我感觉面试官水平超高,应该是个大神,被虐,但还是拿到了他家的offer。

    • xcode 证书校验过程
    • json转model实现
    • 动态库静态库区别
    • 用纯AVFoundation框架,向视频中加入一个水印怎么做
    • GPUImag框架介绍
    • 网络如何优化
    • camke用法
    • 视频从采集到显示,最终写入文件流程
    • AVPlayer缓存技术
    • 视频如何2倍播放,2倍速导出
    • charles原理
    • samplebuffer与pixelbuffer区别
    • CMTime结构

    这个人的问题专业程度不逊于360。

    最右


    一面

    • crash崩溃怎么解,崩溃到底层代码
    • AVplayer 遍播遍下载
    • 如何设计一个网络库

    二面

    • FBO、H264、GPUImage3、
    • 大图加载、PCM计算时间、
    • 如何实现分割滤镜、
    • 音视频编码

    美术宝


    主观评价:我感觉是最高效的,简洁

    • kvo
    • block
    • notification
    • runloop
    • 二面有个算法题

    两次面试加一起50分钟,然后就发offer,牛。

    其他公司


    主观评价:大小公司都会有算法,有的用牛客网,有的用leetcode,纯手撸,无提示。

    • NSCache 应用场景 与NSDictionary区别
    • git工作流
    • 常见的锁,哪个性能最差,以及原因
    • app逆向分析
    • leak工具使用
    • charles原理
    • http与https区别
    • 组件化思路
    • 持续集成方案
    • copy、assign区别
    • 内存对齐
    • sel、_cmd、isa
    • Tagged pointer
    • 剪刀石头布
    • 最长不重复字符串
    • 大量的数字排序
    • leetcode 32
    • leetcode 1237
    • leetcode 828
    • leetcode 283
    • leetcode j67
    • leetcode 116
    • 函数调用机制
    • 消息转发
    • h5、js

    总结


    iOS底层:

    • kvo、
    • runtime、
    • kvc、
    • notification、
    • runloop、
    • 关键字(copy、assign、strong)、
    • block、
    • GCD

    其实东西不多,理解底层对于记忆规则,有很大帮助。建议源码和《iOS和OS X多线程和内存管理》一起看,以及一些大神的文章

    音视频方向:

    • 从AVFoundation入手,然后GPUImage,在然后OpenGL ES、MetalKit
    • ffmpeg、opencv
    • c\c++
    • rtmp、webrtc

    其他:

    • 组件化
    • 设计模式与原则
    • 网络
    • 持续集成
    • 团队协作流程

    面试没有遇到Swift的问题,有点意外,这次面试,大约有一半使用swift,有一家纯swift开发,其余都是混编,或者有业务线是swift。

    建议大家先找到工作再辞职,除非工作太忙,没时间。


    关于Swift

    swift我也准备了,预计明年,swift相关的问题会爆发出来

    • 泛型约束
    • 关联类型
    • 类型擦除
    • where使用
    • codable 如何实现key映射
    • AnyIterator
    • sequence
    • indexable
    • collection
    • map、filter、reduce、sorted
    • 如何实现链式编程(snapkit)
    • 函数派发机制(class、struct、extension、protocol)
    • kvo失效怎么办
    • 内存管理 pwt、vwt
    • 内存,统一类型的变量可选值与非选值内存有什么区别

    资料推荐

    如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。

    相关文章

      网友评论

        本文标题:iOS面试梳理 - 2020年8月初

        本文链接:https://www.haomeiwen.com/subject/srswsktx.html