腾讯音乐iOS一面凉经
1. JSONModel的实现,自定义类型怎么处理的
2. sd_webImage
问题1:滑动小视频,每一个视频的背景都要重新计算吗
问题2:缓存形式
问题3:缓存的key是什么?
问题4:内存缓存淘汰策略
问题5:LRU的实现
问题6:磁盘缓存淘汰策略
问题7:内存缓存图片存的是什么
问题8:图片是什么形式
问题9:磁盘为什么用格式化数据
问题10:格式化数据怎么转换成图片
3. 对属性的理解
追问1:有哪些性质
追问2:原子性是什么?实现原理
追问3:线程不安全的解决方法
追问4:介绍一下知道的锁
追问5:这几种锁的开销对比
追问6:weak的作用和实现,weak表的key和value分别是什么?什么时候遍历weak表?
追问7:循环引用与内存泄漏的关系
追问8:循环引用有哪些情况
追问9:对block的理解,如何捕获变量,block一定会造成循环引用吗?
4. Runloop与线程的关系,Runloop的流程,在主线程和子线程分别调用延时操作方法分别有什么影响?
5. int字节数,由什么决定?
6. http协议下,输入url到显示的过程(说了https的,听错了)
追问1:https握手过程
追问2:为什么要使用非对称加密协商秘钥,用对称加密通信
追问3:浏览器怎么知道证书是可信任的
追问4:手机和服务器通信,电脑如何抓中间的http包
追问5:http包包含哪些内容
追问6:GET和POST区别
7. udp能否实现和tcp一样的效果,如何实现
8. 线程和进程的区别?
追问1:说一下进程通信有哪些方式
追问2:管道通信底层实现
追问3:进程创建开销为什么比线程高
追问4:线程共享进程的哪些资源,线程都有自己的栈吗
9. 算法说思路:链表去除重复元素,说了用哈希表存储
10. 算法说思路:数组第K大元素,说了两种方法,分别说复杂度
11. 算法:N叉树第K层节点数量(写了个dfs)
追问1:还有其他方法吗?(说了个层序遍历)
追问2:层序遍历需要哪些数据结构?(说两个队列)
追问3:还有其他方法吗?(不太确定的说递归)
追问4:说说看(突然想不到了,就说一个队列也可以)
追问5:面试官笑了
2. sd_webImage
问题1:滑动小视频,每一个视频的背景都要重新计算吗
问题2:缓存形式
问题3:缓存的key是什么?
问题4:内存缓存淘汰策略
问题5:LRU的实现
问题6:磁盘缓存淘汰策略
问题7:内存缓存图片存的是什么
问题8:图片是什么形式
问题9:磁盘为什么用格式化数据
问题10:格式化数据怎么转换成图片
3. 对属性的理解
追问1:有哪些性质
追问2:原子性是什么?实现原理
追问3:线程不安全的解决方法
追问4:介绍一下知道的锁
追问5:这几种锁的开销对比
追问6:weak的作用和实现,weak表的key和value分别是什么?什么时候遍历weak表?
追问7:循环引用与内存泄漏的关系
追问8:循环引用有哪些情况
追问9:对block的理解,如何捕获变量,block一定会造成循环引用吗?
4. Runloop与线程的关系,Runloop的流程,在主线程和子线程分别调用延时操作方法分别有什么影响?
5. int字节数,由什么决定?
6. http协议下,输入url到显示的过程(说了https的,听错了)
追问1:https握手过程
追问2:为什么要使用非对称加密协商秘钥,用对称加密通信
追问3:浏览器怎么知道证书是可信任的
追问4:手机和服务器通信,电脑如何抓中间的http包
追问5:http包包含哪些内容
追问6:GET和POST区别
7. udp能否实现和tcp一样的效果,如何实现
8. 线程和进程的区别?
追问1:说一下进程通信有哪些方式
追问2:管道通信底层实现
追问3:进程创建开销为什么比线程高
追问4:线程共享进程的哪些资源,线程都有自己的栈吗
9. 算法说思路:链表去除重复元素,说了用哈希表存储
10. 算法说思路:数组第K大元素,说了两种方法,分别说复杂度
11. 算法:N叉树第K层节点数量(写了个dfs)
追问1:还有其他方法吗?(说了个层序遍历)
追问2:层序遍历需要哪些数据结构?(说两个队列)
追问3:还有其他方法吗?(不太确定的说递归)
追问4:说说看(突然想不到了,就说一个队列也可以)
追问5:面试官笑了
12. 反问
最后:
计算机基础部分基本上答上来了,OC的第二题答的不太行,原子性的实现没说出来,最后层序遍历第二种方式没说出来。
最后面试官说基础还可以,OC稍微欠缺。
第二天挂
#面经##校招##iOS工程师##腾讯音乐娱乐#