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

作者: iOS丶lant | 来源:发表于2021-12-03 15:40 被阅读0次

    一面(技术面,腾讯会议没开视频,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面

    相关文章

      网友评论

        本文标题:腾讯音乐iOS开发四次面试记录

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