一面(技术面,腾讯会议没开视频,50min)
1.项目介绍
2.C++
(1)继承的内部是怎么实现的?(不会)
(2)vector的实现原理?
(3)数组和链表的区别?
3.网络
(1)TCP和UDP的应用场景?
(2)TCP握手为什么是三次?(解释了2次为啥不行,4次又没有必要)
(3)TCP挥手为啥是四次呢?(TCP是全双工连接)
(4)TCP的拥塞控制?(慢启动、拥塞避免、快重传、快恢复)
(5)DNS系统的工作过程?(浏览器缓存->OS缓存->hosts文件->本地DNS服务器->根域名服务器->顶级域名服务器->权威域名服务器)
(6)DNS劫持如何解决?(HTTPDNS,由于 HTTPDNS 是通过 IP 直接请求 HTTP 获取服务器 A 记录地址,不存在向本地运营商询问 domain 解析过程,所以从根本避免了劫持问题)
(7)哈希表的应用场景?
(8)HTTP和HTTPS的区别?(加密传输、端口号、握手过程、开销、证书)
(9)TLS的加密过程?
(10)浏览器是如何对证书进行认证的?(浏览器安装了根证书,验证服务器证书的上一级签发机构是否是可信的,具体说来就是看证书的签名是由上一级签发机构的私钥加密的,一直向上回溯直到根证书)
(11)App也需要安装根证书吗?这个证书是从哪里来的?(要,CA机构)
4.OS
(1)如何保证线程安全?(1.互斥锁 2.原子操作 3.Volatile字段)
(2)死锁是如何产生的?(四个必要条件)
(3)线程之间是如何共享资源的?(全局变量)
(4)进程之间如何共享资源(共享内存、管道、消息队列、Socket)
5.手撕代码(共享屏幕)
(Leetcode 142)判断链表是否有环,如果有找出环的入口节点
6.开放性问题
(1)为什么投递iOS岗位?
(2)如何看待广告?
二面(技术面,腾讯会议视频,45min)
1.项目介绍
2.C++
(1)STL中vector、list、map的底层实现,以及特点
(2)指针和引用的区别?
(3)智能指针介绍下?
3.网络
(1)TCP包头有哪些字段?
(2)TCP三次握手和四次握手的过程?
(3)为什么是三次握手?
(4)socket编程里面,select、poll、epoll的区别和特点?
(5)client和server之间TCP通信,双方使用到的socket函数以及过程?
(6)排序算法简单介绍下(快速排序、插入排序、冒泡排序)
4.OS
(1)如何查看端口的使用情况?(netstat -atnp)
(2)netstat里面能看到什么内容(四元组、TCP状态)
(3)网络拥塞能够通过netstat查看吗?
5.DB
(1)索引了解吗?(答了个聚集索引)
6.开放性问题
(1)后端和客户端,你是怎么选择的?
如果你正在跳槽或者正准备跳槽不妨动动小手,添加一下咱们的交流群1012951431来获取一份详细的大厂面试资料为你的跳槽多添一份保障。
三面(技术面,电话,33min)
1.网络
(1)TCP三次握手的过程?
(2)第一次握手的SYN报文中有哪些信息?(seq、ack)
(3)这个序列号seq是如何生成的?(随机生成、向后移动)
(4)每一次往后移动seq,会有什么问题?(会被猜出来seq,伪造连接)
(5)TCP半连接队列里面会记录什么信息?(TCP控制块,里面存储了连接状态等信息)
(6)TCP和UDP的区别?
(7)TCP的拥塞控制?(慢启动、拥塞避免、快重传、快恢复)
(8)HTTPS有没什么了解?(回答了HTTPS和HTTP的区别)
(9)TLS握手的过程?
(10)TLS握手时的随机数有什么作用?(随机数用于生成会话密钥,同时能防止重放攻击)
(11)客户端验证证书的过程?
(12)ARP报文里面都有哪些字段?(OP字段、发送方IP地址、发送方MAC地址、目标IP地址、目标MAC地址、硬件类型、协议类型、硬件地址长度、协议长度..)
2.OS
(1)top命令能看到哪些内容?(CPU占用率比较高的进程pid、CPU平均负载load averge,内存使用情况、进程运行、睡眠的个数等等)
(2)IPC机制有哪些?(管道、消息队列、共享内存、信号量、信号、socket)
(3)socket编程有哪些函数?(socket、bind、listen、accept、connect)
(4)listen()的参数有哪些?(sockfd、backlog)
3.开放性问题
(1)投递移动端开发的考虑?
(2)iOS和安卓的岗位,对开发语言、基础知识的了解?
四面(技术,电话,25min)
1.项目深挖
(1)DDoS攻击的原理?
(2)能够检测哪些DDoS攻击?怎么检测的?
(3)DNS放大攻击原理有了解过吗?如何解决?
(4)除了MFC,Windows上还有哪些界面框架?
(5)Qt的事件机制有了解过吗?
(6)Windows消息队列原理?
(7)怎么从消息队列里面取数据呢?(PeekMessage、GetMessage)
(8)窗口点击按钮之后,消息的流转过程?
2.iOS
(1)iOS了解哪些?
(2)为什么OC是动态语言?
(3)OC中的分类?
3.算法
说思路,如何用栈实现队列?
4.反问
(1)工作内容,工作时间?
公共线部门(非一线业务),做一些公共组件给其他音乐产品使用
10 8 5,不打卡
(2)腾讯音乐和腾讯的关系?
腾讯音乐独立出来的,腾讯控股,福利待遇无区别(存疑)
工卡和腾讯一样,可以进出腾讯大厦
办公地点在腾讯大厦旁边
(3)后续流程?
HR面
-
底层相关的面试文章(https://github.com/iOS-Mayday/heji)
-
简历指导和常见算法(https://github.com/iOS-Mayday/iOS-Interview-Strategy)
-
面试基础
iOS面试基础知识 (一)
https://github.com/iOS-Mayday/heji
iOS面试基础知识 (二)
https://github.com/iOS-Mayday/heji
iOS面试基础知识 (三)
https://github.com/iOS-Mayday/heji
iOS面试基础知识 (四)
https://github.com/iOS-Mayday/heji
iOS面试基础知识 (五)
https://github.com/iOS-Mayday/heji
网友评论