ios kvo 要引入_腾讯社招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的开源框架。最后只能凭借印象大概说了下绘制的流程,其实面试官都是由浅入深的,如果这边回答的不够深入。那么后面也就不会有更深入的探讨了。
3.上个项目中存在视频裁剪,录制等功能。 面试官对这块有些兴趣,就聊到了视频裁剪的实现,因为我们项目中使用了ffmpeg做的裁剪功能。包括视频下载,数据裁剪封装,引申聊到了边预览边裁剪,因为我之前的项目并没有做到预览裁剪这块。也就没有深入聊下去了。期间简单谈到了rstp协议,和HLS,rtmp等协议的对比,信令协议。虽然之前都有看过协议的大致实现和预览,但是实际使用的是SDK,没有实践加持。这部分知识是很容易忘记的。大致聊了下总体差别。
4.项目中有用到过DLNA投屏协议 说来又是惭愧,自己完整做过的项目,过去了两年,居然连流程,协议都只是零零散散的记起来了,很勉强的说出了大概实现流程。知道最后才记起来是soap协议。当初为了做这个可是研究了整整两周的。面试官应该也实现过这个需求,提到了视频盒子断线如何检测做处理,什么原因导致的。由于之前我们的产品需求比较简单,没有特别完善。这里我也只能说了大概。
5.项目做过视频播放需求,使用的AVPlayer框架(重点聊) 面试官问到,AVPlayer怎么监听视频缓冲状态的,有哪几种状态。说来又是惭愧,我只记得是KVO监听的。具体的API已经记不清了。 接着面试官问到这个需求遇到过哪些坑,怎么解决的。 这个还真的有,首先是回调播放进度在拖动时候错乱,加载某些小视频的适配,首帧出图很慢。KVO的模式不灵活。缓冲进度不受我们控制。短视频可能直接迅速缓冲到底。 还是之前的思路 需求痛点有了 解决方案:探索的思路-》解决方案。 不得不说之前做的产品,都是需求驱动,解决了需求,很多时候就没有极客精神,在深入的去探讨。这块真的是差!
发散问到了:如果网络不好,首帧出图之后,如何优化后续播放不卡顿 当时已经一脸懵逼了:就提到了可以适当加大缓冲区,等到足够的I帧数据再开始播放。
甚至连常规的码率切换思路都没想到。作为做音视频相关产品的我太不应该了。
6.项目聊完了之后,又追问了iOS的一些基础问题,属性和成员变量区别,strong,atomic关键字,怎么理解runloop,runloop有几种状态等等。
7.最后给出了一个非常有意思的算法题
有15个瓶子,其中最多有一瓶有毒,现在有四只老鼠,喝了有毒的水之后,第二天就会死。如何在第二天就可以判断出哪个瓶子有毒 答:开始我想到的是常规思路二分法,717,和面试官说了,发现四只老鼠根本不够,面试官友好的提示从老鼠面去想,这时候很快想到了一个老鼠有死和不死,也就0和1两个状态,四只老鼠有16个组合,正好是足够的。但是怎么分配瓶子,还没想好,演算了一会儿,因为面试官这边时间有限,就说思路是正确的。下面有兴趣在看怎么分哈。面试就到此结束了。
二面持续了大约一个小时多一点。 二面自己感觉了很多欠缺,不够深入。
面试总结
腾讯的面试官都非常的友好,逻辑性非常强。综合素质很高。面试过程中虽然针对的都是技术问题,但是考察的包含了逻辑思维和产品思维以及沟通能力等综合素质。特别是二面。
认识到了自己的不足:
1.不够极客精神:还是需求驱动,之前的项目很多设计优化因为对产品的需求没有那么高精度,遇到痛点的时候:仅仅做了初步的探讨,没有形成完整的闭环
往往是做了一定的优化满足了需求就结束整个过程了。这对于自我的成长是很不好的。比如一个API了解到百分之70,没有到100.

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

虽然每个环节都有去学习,也都知道流程,但是这是不够。要深入进去。即使自己的项目没有这块实践需求。也要自我驱动去做。
3.自我总结欠缺:以前都是浑浑噩噩的快乐开发,也自学了不少。每个项目,或者每个自我学习的过程走一段,都应该站在更高点去总结一下。
例如项目,要站在产品角度,自我学习,要站在整体框架角度。否则学习到的东西一段时间不用就忘记了。高度也不够。没有完全消化透。感觉什么都懂一些,但是什么都差一点火候
怎么改善提高
多写Blog分享,东西会做,和能写出来是两个层面。即使网上已经有很多实现了。消化好之后,用自己的思路表达出来,也有很大提高
遇到问题,无论是项目还是自己实践,都要多问几个为什么,不能浅尝辄止,站在产品角度。从原理层面理解问题,最重要是给出解决问题方案。demo不等于工程。
阶段性总结知识点。古语: 学而时习之。
反思了很多:也清楚认识到自己的一些优点,有技术热情,爱好学习。很好的逻辑思维。沟通能力。相信只要坚持努力。一定能获得好的结果。也给自己打打气。共勉之。
本文为第三方转载。
原文链接:

腾讯社招iOS面试记录​mp.weixin.qq.com
6179e02ee1eb3081b279ac3e8e07671f.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

html 中加号的表示方法,CSS的+(加号)选择器怎么用

在CSS中“”符号选择器用于选择紧跟在指定元素之后但不在特定元素内部的元素。下面本篇文章就来具体介绍一下,希望对大家有所帮助。“”符号选择器在CSS中“”符号选择器被称为相邻兄弟选择器,用于选取在同一父元素下的,紧跟指定元素之后的另…

华为新系统 鸿蒙,旗舰CPU+鸿蒙OS!华为Mate家族重磅新品来袭

我们常说安卓平板的生态跟苹果iPad有很大差距,不论是应用质量还是原生系统支持,苹果都做的更好一些。可能也是因为这个原因,因此安卓平板,尤其是旗舰级别的平板至今除了三星之外,也就只有华为在做。作为安卓阵营两大厂…

mysql中用来取余数的函数是_MySQL常用函数-单行处理函数-字符串处理函数(更新中...)...

本篇文章用到的数据库表/* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.7.23-log : Database - myemployees ********************************************************************* *//*!40101 SET NAMES utf8 */;/*!40101 SET SQL_MODE*/;/*!40014 SET OLD_UNIQUE_CHECKSUN…

html盒子模型页面居中,【静态页面架构】CSS之盒子模型

CSS架构盒子模型;以内容区(显示文本和图像)内边距(内容区至边距的距离)边距(内容区的边界)外边距(元素的边框之间的距离)1.边距;border属性;简写属性用来设置边距的上(top)右(right)下(bottom)左(left)。宽度,颜色和样式div{width…

最强动画制作人书包_声优访谈丨恋与制作人动画中配声优访谈——夏磊

亲爱的制作人们:距离恋与制作人动画上线还有6天!今天的中配声优访谈嘉宾是在动画中为许墨献声的夏磊老师~固定布局 工具条上设置固定宽高背景可以设置被包含可以完美对齐背景图和文字以及制作自…

codesys com库_CoDeSys官方系统库在线下载,替换国内下载服务器教程

欢迎加入工控分享技术服务社区推荐阅读Codesys学习资料大全Codesys控制器关于CANopen总线的详细应用说明当你软件报以下错误,你可以直接下载,如果下载不成功,可以换个网络试一试,或者进行下面的操作。由于国内网络问题&#xff0c…

centos7恢复mysql数据库_MySQL数据库升级迁移填坑记

原库:*.*.101.73/74 系统环境: Suse 12.4MySQL: 5.7.29新库:*.*.110.46/47系统环境:CentOS7.7 64位MySQL版本: 5.7.30[一、数据库升级迁移场景]因业务侧在*.*.101.73/74 mysql数据库服务器上部署了java应用程序、HadoopHbase数据库等大数据…

so把asp页面生成静态的html,23、asp系列课程--server.URLEncode方法和server.HTMLEncode方法...

作者:杨凡来自:杨凡博客地址:blog.sina.com.cn/aboutshisanserver.URLEncode方法和server.HTMLEncode方法可以对字符串进行编码。我们一个一个的说。server.URLEncode可以对字符串进行URL编码转换,语法格式为:server.u…

下列关于html5表单的多样输入方式,IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1...

原标题:IT兄弟连 HTML5教程 HTML5表单 多样的输入类型1HTML5拥有多个新的表单输入类型,这些新特性提供了更好的输入控制和验证。并不是所有的主浏览器都支持新的input类型,不过我们可以在所有的主浏览器中使用它们,即使不被支持&a…

v7000更换电池步骤_ups电源运行中是否可以更换电池?应如何操作呢

ups电源在日常使用中除了日常维护工作之外,对于使用达到一定年限的时候,内部使用的ups蓄电池就需要更换了,很多人以为ups不间段电源在工作的时候是可以跟换电池。其实,这个具体就需要看ups电源设计的原理,不同厂家设计…

华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...

华为作为手机界名副其实的大佬,而且华为手机的口碑也是非常不错的。那么为什么会有这么多人喜欢华为手机呢?主要是华为手机的质量高,并且用很多实用的小功能,比如说神奇的灭屏显示功能等等,今天就给大家分享几个华为手…

hive转16进制unhex_Java 进制的转换

什么是进制?进制也就是进位计数制,是人为定义的带进位的计数方法(有不带进位的计数方法,比如原始的结绳计数法,唱票时常用的“正”字计数法,以及类似的tally mark计数)。 对于任何一种进制---X进制,就表示每…

引入ui组件_Vuejs, Semantic CSS前端框架fish-ui

简介基于vue2.0, github star 690, 一款小众的UI框架fish-ui,直接上截图:主要特性配备Vue.js,Moment,Vue-Router,ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 组件使用 Less支持现代浏览器快速开发安装npm i…

减去字符串_从文本字符串中提取指定值的6个超级技巧解读

在实际的工作中,从指定的字符串中提取指定文本也是常用的技巧之一,除了手动操作之外,下文的8种应用技巧也是必须要掌握的。一、Left函数法。功能:从指定文本字符串的第一个字符开始,提取指定长度的字符串。语法结构&am…

如果用计算机录制歌曲需要,网络歌手怎么用电脑录音软件录歌

现在网上有很多网络歌手主要分为两类,一类是原创,一类是翻唱。可是不管是原创还是翻唱都需要自己唱歌录歌,要有属于自己的歌曲(自己唱的)。要录歌就要有设备,毕竟网路歌手刚开始大多数都是草根没有钱找音乐工作室,只能…

中国剩余定理证明过程

原网址:http://blog.csdn.net/wtq493841534/article/details/5452720 中国剩余定理 中国剩余定理可以描述为: 若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn,则可表示为下式:xR1r1R2r2…RnrnRD其中R1是d2、d3、…、dn的公…

关闭浏览器前提示_win7系统ie总弹出查看和跟踪下载的关闭方法

今天小编给大家分享的是win7系统ie总弹出查看和跟踪下载的关闭方法,使用ie浏览器上网的时候,有些用户会遇到ie总弹出查看和跟踪下载的窗口,很多用户想关闭掉此提示,却不知如何关闭查看和跟踪下载的窗口,那么请参照以下…

html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图

3.jpgvue的百度地图早就有vue-baidu-map这里就不赘述了,自己去直接对着API写就好了,基本上已经满足绝大多数需求了还简单方便。vue-baidu-map 传送门 https://dafrok.github.io/vue-baidu-map/#/zh/index这里主要是在vue里面引入BMapGL,或者其…

排序千万级数据_从千万级房产成交量排名,窥探中国城市的真实家底

原标题:从千万级房产成交量排名,窥探中国城市的真实家底 文/孙不熟 来源/城市战争 如果你有1000万以上的买房预算,你的选择其实很少,总共不超过10个城市,这就是中国城市和楼市的真实家底。 昨天推送了一篇《…

html 实现列表组并排,列表组--自定义列表组

Bootstrap框加在链接列表组的基础上新增了两个样式:☑list-group-item-heading:用来定义列表项头部样式☑list-group-item-text:用来定义列表项主要内容这两个样式最大的作用就是用来帮助开发者可以自定义列表项里的内容,如下面的…