腾讯社招iOS面试记录 了解一下!!!

毕业好几年了,上周发送了简历给腾讯,参加了腾讯面试。具体部门这边就不说了。这次面试还是收获到了很多。

一面电话面试:

面试官主要是针对iOS相关的基础问题。

先简单自我介绍一下自己

对mrc和arc的理解

谈谈对自动释放池的理解

自动释放池在mrc和arc区别

多层自动释放池嵌套的对象在哪一层释放

对于block,理解,mrc和arc下有什么区别,使用注意事项

对于深拷贝和浅拷贝的理解

对于strong weak,atomic等等理解

weak原理

如果属性完全不加修饰词入weak,atomic,系统会怎么处理

简述下block的实现

描述下IM系统如何保证消息不丢

IM数据库如何设计表

C++引用和指针有什么区别

Http协议30x的错误是什么

谈谈你懂runloop得理解:由浅入深

谈谈对多线程理解:由浅入深

谈谈category和extension区别,系统如何底层实现category

谈谈消息转发机制实现

谈谈事件响应链,如何响应view之外的事件

界面性能优化

整个面试大约1个半小时。整体上,回答的还算OK,自动释放池这块,不够清楚底层实现。另外atomic是在属性没有写的情况下系统默认的。Block的底层实现也表达的不够准确。

一面之后过了几天,给了二面通知。

二面视频面试:

这次面试官相对于一面,更加侧重于过往项目。

1.开头都是简短的自我介绍 2.聊一聊过往项目中你觉得收获最大的一个模块。

突然遇到这个问题,心理是有点懵逼的呀,我不禁反想了一下,过去这些个项目,零零散散收获了不少知识和经验,可是具体到哪一个模块,完整的思考还是没有过的。

答: 就说了上个项目做类似朋友圈的优化思路,谈到了空间换时间,缓存,渲染相关的技术点。

不得不惊叹腾讯的面试官的逻辑条理,很快抓住了问题的本质。

需求痛点:界面卡顿,体验不好 解决方案:探索的思路-》解决方案。

该模块引申到的新话题还涉及到了增量更新,内存缓存,本地缓存。

细节上还谈到了富文本绘制,Coretext框架的使用,哎,说来惭愧,上次使用coretext已经是两年前,连框架的核心API都已经不记得了。再加上项目中使用的是YYLabel的开源框架。最后只能凭借印象大概说了下绘制的流程,其实面试官都是由浅入深的,如果这边回答的不够深入。那么后面也就不会有更深入的探讨了。

上个项目中存在视频裁剪,录制等功能。 面试官对这块有些兴趣,就聊到了视频裁剪的实现,因为我们项目中使用了ffmpeg做的裁剪功能。包括视频下载,数据裁剪封装,引申聊到了边预览边裁剪,因为我之前的项目并没有做到预览裁剪这块。也就没有深入聊下去了。期间简单谈到了rstp协议,和HLS,rtmp等协议的对比,信令协议。虽然之前都有看过协议的大致实现和预览,但是实际使用的是SDK,没有实践加持。这部分知识是很容易忘记的。大致聊了下总体差别。

项目中有用到过DLNA投屏协议 说来又是惭愧,自己完整做过的项目,过去了两年,居然连流程,协议都只是零零散散的记起来了,很勉强的说出了大概实现流程。知道最后才记起来是soap协议。当初为了做这个可是研究了整整两周的。面试官应该也实现过这个需求,提到了视频盒子断线如何检测做处理,什么原因导致的。由于之前我们的产品需求比较简单,没有特别完善。这里我也只能说了大概。

项目做过视频播放需求,使用的AVPlayer框架(重点聊) 面试官问到,AVPlayer怎么监听视频缓冲状态的,有哪几种状态。说来又是惭愧,我只记得是KVO监听的。具体的API已经记不清了。 接着面试官问到这个需求遇到过哪些坑,怎么解决的。 这个还真的有,首先是回调播放进度在拖动时候错乱,加载某些小视频的适配,首帧出图很慢。KVO的模式不灵活。缓冲进度不受我们控制。短视频可能直接迅速缓冲到底。 还是之前的思路 需求痛点有了 解决方案:探索的思路-》解决方案。 不得不说之前做的产品,都是需求驱动,解决了需求,很多时候就没有极客精神,在深入的去探讨。这块真的是差!

发散问到了:如果网络不好,首帧出图之后,如何优化后续播放不卡顿 当时已经一脸懵逼了:就提到了可以适当加大缓冲区,等到足够的I帧数据再开始播放。

甚至连常规的码率切换思路都没想到。作为做音视频相关产品的我太不应该了。

6.项目聊完了之后,又追问了iOS的一些基础问题,属性和成员变量区别,strong,atomic关键字,怎么理解runloop,runloop有几种状态等等。

7.最后给出了一个非常有意思的算法题

有15个瓶子,其中最多有一瓶有毒,现在有四只老鼠,喝了有毒的水之后,第二天就会死。如何在第二天就可以判断出哪个瓶子有毒 答:开始我想到的是常规思路二分法,717,和面试官说了,发现四只老鼠根本不够,面试官友好的提示从老鼠面去想,这时候很快想到了一个老鼠有死和不死,也就0和1两个状态,四只老鼠有16个组合,正好是足够的。但是怎么分配瓶子,还没想好,演算了一会儿,因为面试官这边时间有限,就说思路是正确的。下面有兴趣在看怎么分哈。面试就到此结束了。

二面持续了大约一个小时多一点。 二面自己感觉了很多欠缺,不够深入。

面试总结

腾讯的面试官都非常的友好,逻辑性非常强。综合素质很高。面试过程中虽然针对的都是技术问题,但是考察的包含了逻辑思维和产品思维以及沟通能力等综合素质。特别是二面。

认识到了自己的不足:

  1. 不够极客精神:还是需求驱动,之前的项目很多设计优化因为对产品的需求没有那么高精度,遇到痛点的时候:仅仅做了初步的探讨,没有形成完整的闭环,

往往是做了一定的优化满足了需求就结束整个过程了。这对于自我的成长是很不好的。比如一个API了解到百分之70,没有到100.

  1. 已有项目知识面深度不够:项目中使用到了某些API,第一反应是先去看Demo,完成需求,事实上例如仅仅是一个简单视频播放,可能调用API很简单就可以做到,但是中间包含的却很多,从网络协议,到视频解封装,编解码,渲染。音频编解码播放。

虽然每个环节都有去学习,也都知道流程,但是这是不够。要深入进去。即使自己的项目没有这块实践需求。也要自我驱动去做。

3.自我总结欠缺:以前都是浑浑噩噩的快乐开发,也自学了不少。每个项目,或者每个自我学习的过程走一段,都应该站在更高点去总结一下。

**iOS学习交流群786735421,新群 水群勿扰!!!水群勿扰!!群内文件自取!!

例如项目,要站在产品角度,自我学习,要站在整体框架角度。否则学习到的东西一段时间不用就忘记了。高度也不够。没有完全消化透。感觉什么都懂一些,但是什么都差一点火候

原文地址:http://blog.51cto.com/13865003/2140875

时间: 2024-10-07 19:57:28

腾讯社招iOS面试记录 了解一下!!!的相关文章

腾讯社招 —— 腾讯游戏后端工程师-电话面试

腾讯游戏后端工程师电话面试内容 本来想着9月份再往大厂投简历,但是由于一些其他因素,在boss上投了腾讯三个部门,记录一下2019年05月23号第一个部门的电话一面内容. 描述一下linux系统中的进程与线程,进程中哪些是线程共享的,线程拥有哪些私有的内容. 说一下自己对go语言和java和c之间的区别. 协程相比进程线程有哪些不同. goroutine的优点和缺点. go语言如何实现继承封装和多态. tcp和udp的区别,dup的头部有哪些字段,tcp头部有哪些字段. 简单介绍一下你在公司的项

腾讯社招 —— 应用宝后端工程师-电话面试

这是另一个部门,我之所以能同时面两个部门,应该是我的简历没有进腾讯的内部系统. 这个电话面试应该是我印象最深刻的一次面试,学到很多东西,面试官听声音应该是一个工作2.3年的小哥哥,说话很有趣,可能是周五晚上的原因,他一直类似朋友聊天吐槽一样的和我聊了100多分钟. 他是第一个提到我github上面的个人项目的面试官,面试过程中问到我项目里某几段代码,指出其中的错误.说明这个小哥一定游览过我的代码,当时超级感动,觉得第一次被人肯定的感觉. 面试小哥:你不是计算机专业的,是后来自己自学的吗,平时都怎

聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

阿里社招面试都问什么? 和之前一样,文章一上来,我们先来谈谈阿里的社招面试都问什么,其实这个话题并不是什么秘密,所有来阿里面试过的同学,都能回答一二. 两年前的时候,笔者在文章里是这么回答的. 这个是让LZ最头疼的一个问题,也是群里的猿友们问的最多的一个问题. 说实话,LZ只能隐约想起并发.JVM.分布式.TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住.而且就算LZ记住了,也告诉你了,你也背会了,但LZ觉得,在面试中,你被问到一模一样问题的可能性依然很小. 甚至,就算你运气好被问到了

回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议

其实本来真的没打算写这篇文章,主要是我得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来.我自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的. 但是,最近问我的人实在是太多了,为了避免重复回答,给自己省点力气,干脆就在这里统一回复了. 其实之前我写过一篇文章,但是那篇文章更多的是在讨论"面试前该不该刷题"这个话题,而这篇文章将会更加聚焦在面试前如何准备,以及工作当中如何学习这个话题上,而

腾讯面经:错过校招的我如何在社招进入鹅厂

昨天收到腾讯HR的确认电话,终于长长的松了一口气,一切终于尘埃落定了.从昨天起,我也算是鹅厂的员工了. 其实当时我也是看到之前老同学的链接,说腾讯正在招游戏的前端开发,粗略的看了下要求,感觉和自己也挺匹配的,于是翻出了之前的简历,又抖抖嗖嗖的往里面加了点最近在GITHUB折腾的几个库,朝HR邮箱里面送了过去. 第二天还在老公司上班就收到了hr的电话,当时还在开会,于是申请了晚上电面,也趁机做了些准备.晚上收到HR电话,开头就让我做了一个英文的自我介绍,我操着我已经将近3年没用的口语磕磕巴巴的给H

放手一搏:社招Java岗面试经历(三年经验): PingCAP、蚂蚁

前言 今年想出来看看机会,最后很幸运地拿到了 PingCAP,今日头条的 offer 以及蚂蚁金服的口头 offer.想着可以总结一下经验,分享一下自己这一段"骑驴找马"过的心路历程.当然,一家之言,难免粗浅,如有不妥,敬请指正. 全文有点长,假如只对一家公司感兴趣的话可以直接跳过去: 准备过程 我自己是本科毕业后在老东家干了三年多,老东家算是一家"小公司"(毕竟这年头没有 BAT 或 TMD 的 title 都不好意思报出身),毕业这两年多我也没有在大厂待过,因此

【年终总结】微信前端社招有感

时间飞快,转眼间8102还差一个月就over了,顺了顺好几天没理的胡渣儿,好像已经老了不少. 不,我还很年轻!虽然年终还没到,但好像也差不多了. 几经辗转,年底前终于拿到了微信的offer,可以说是今年一大幸事了. 是一个结束,结束本命年的坎坷:是一个开始,开始新的征程. 这篇杂文就简单记录一下微信前端社招的经历,以及回顾这两年半做过的东西. 一.过七关 微信社招,老早就听说难度极大,十几轮面试的情况都有. 所以急不得,大概今年下半年开始,本菜菜就着手准备了,主要是扩充知识面以及加深对相关知识的

朋友的一年工作经验跳槽字节跳动社招经历分享(已拿offer)

虽然已经临近年末,但是还是萌生要看新机会的想法,主要的原因是觉得在目前的岗位上技术增长遇到的瓶颈,因此想去做一些更有挑战的工作.因为仍然准备继续在深圳工作,因此选定了三家公司,腾讯.字节跳动和 shopee,考虑的岗位方向仍然是后台开发(其他岗位也面不上呀,伤心).虽然年底跳拿不到年终奖了,但是我觉得和自己个人整个职业生涯的发展比起来算不了什么,最好的时机永远是当下. 准备 敲定了方向和目标后就开始系统准备,主要分为以下几个方面来准备. 算法题 事先已经看过别人的社招面经知道头条每轮技术面都有算

李洪强iOS面试一般性问题

iOS面试一般性问题,学会这些拿offer几率提升90%! 面试题中有一些一般性的问题,通常是会问到的.面试iOS应聘者时,切入点很重要,不同的切入点会导致不同的结果,没有找到合适的切入点也无法对应聘者有一个全面的了解.所以下面的面试问题更多的是提供方向,没有固定的答案,而且可以根据应聘者的回应引出更多有意思深层次的讨论. 注意:以下问题的参考答案均为笔者所答,不代表正确,问题答案因人而异,请根据自己的实际情况回答,若认为不合理,请在评论中指出.下面所有的参考答案,都是笔者站在面试官的角度来分析