字节跳动客户端一面面经
- 一分钟自我介绍
- 项目中合作开发是指既有客户端又有服务端吗
- 对于iOS了解的深吗?大概学了多长时间。
开始问一些相关的问题 - 讲一讲你所理解的进程和线程
- 线程有阻塞和唤醒吗
- 在多线程环境下编程需要注意哪些情况呢
- 避免死锁都有哪些方式方法
- 多线程开发各自更好工作,而不会出现竞争/你有用过哪些个锁?
- 项目里有用过相关的锁/多线程相关的事情吗
- 解释一下WebSocket通讯的过程
- 相比于HTTP它的优点是什么呢?
- 场景题:输入网址进入网页按回车刷新网页都发生了什么
- 知乎这种网站可能需要登录一下,下次再打开还是登录状态。HTTP无状态如何记录我们的登录状态
- 平时项目的C语言和OC比较多,python是做了什么?
- C和OC这两种语言在编译运行方面有哪些差异?Python是如何编译运行的?C和OC是如何编译运行的?(感觉这个面试官在编译方面问到的东西非常多
- C语言和OC在语言层面上的差异?OC支持了哪些功能?
- 消息转发有了解过吗?可以讲一讲你所了解的消息转发吗
- 你觉得你刚才提到的分类,是不能添加成员变量的,为什么不能添加成员变量。
- 静态库和动态库的区别?(完全没有了解过.....)
- 静态链接和动态链接呢?(从这地方开始慌了)
- OC可以沿用C语言相关的语法,const 和 shift define,这两种形式声明的常量有什么区别?(我猜这个地方面试官想问的应该是define和const的区别,至于为什么前面还有一个shift则不太清楚)
- 面向对象的过程,继承和多态是如何实现的?(继承应该是is-a指针)多态不清楚,但当时太紧张啥都没想起来。这里面试官给了个提示说C++中是通过虚函数表实现的,但是我也没学过C++所以完全没有了解过。。。。。。。
- 中间人使用工具,抓我们的网络请求,防止中间人抓包。
- 你所说的证书是存储在设备上还是app上呢
- 字典的实现是如何实现的?(应该是哈希表,但是没有想起来,面试官还是很贴心的给出了答案)
- 字典在查询的时候的时间复杂度。
- 插入很多数据之后,哈希冲突如何解决
代码part
循环打印,之前看到过但是没刷....然后费了老大劲才写出来,都快占了面时间的一半了....
哭了,等通知ing