写点什么

腾讯音乐 iOS 开发四次面试记录

作者:iOSer
  • 2021 年 12 月 08 日
  • 本文字数:2127 字

    阅读完需:约 7 分钟

一面(技术面,腾讯会议没开视频,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/hejiiOS 面试基础知识 (二)https://github.com/iOS-Mayday/hejiiOS 面试基础知识 (三)https://github.com/iOS-Mayday/hejiiOS 面试基础知识 (四)https://github.com/iOS-Mayday/hejiiOS 面试基础知识 (五)https://github.com/iOS-Mayday/heji

用户头像

iOSer

关注

微信搜索添加微信 mayday1739 进微信群哦 2020.09.12 加入

更多大厂面试资料进企鹅群931542608

评论

发布
暂无评论
腾讯音乐iOS开发四次面试记录