乐趣区

关于ios:如何一举拿下大厂Offer面经附面试题

筹备

其实我很早就开始筹备了,精确来说也不算筹备,只是始终在总结 iOS 相干方面的常识,然而还是有大把工夫能够本人学习一些感兴趣的方向。从过完年回来,我就有打算的温习和总结了一些常识。

看过的书籍,这里并不是泛泛的读一遍,而是具体了解了大多数内容,艰深一点就是能够用本人的话将相应的常识解读出 来。《Android 开发艺术摸索》(这本书真心不错,我重复读了 4、5 遍)、《iOS 群英传》(比拟靠近开发应用,因为做过一些利用开发,读起来还是比较简单的,读了 2 遍)、《剑指 offer》(感觉面试中碰到的算法,70% 都能找到相应的题目,保障所有的题都能够手写进去就行)。4 个月精读了以上书籍,还有其余的都是简略理解,这里就不列举了,读完这些书,应该能够让你上一个档次吧(妈妈再也不必放心我面试啦…)。

刷题,次要是 LeetCode(大略刷了 300 道题左右,每天 3 - 6 道,保持下来,须要多温习,因为很多题过一段时间会遗记),还有看过一些牛课网。

看他人的面试教训,次要在网上,这里我列举两个比拟好的。

  • 1、iOS 客户端面试题集锦
  • 2、iOS 阿里面试题锦集

投递简历

一份好的简历是十分有必要的,须要突出你的重点和闪光点,具体怎么写简历能够参考

iOS 面试高薪,进阶 你会这些呢嘛?(继续更新中)

CodeKK 说简历

有了一份好简历,接下来就是投递简历,个别是:拉钩 +BOSS 直聘 + 内推,从我这次面试机会来看,三者比例是 2:2:1,如果被刷掉也不要灰心,当初大公司基本上各个部门都有本人的 hr,能够在拉头和 BOSS 上多投递一些,万一其余部门看中你呢?

面试经验

这里我仅仅记录一些问过的题目(能记住的),答案我就不写进去,基本上都能够在网上找到相应的答案。

一面

1、iOS 一些优化计划

2、最罕用的版本控制工具是什么,能大略讲讲原理么

3、UNIX 常用命令

4、c 语言在 iOS 开发中的重要性

5、源代码管理工具的作用

二面

二面面试官是 Eva?反正应该不是做 iOS 的,iOS 的相干常识问的也不多,大多是我的项目上的货色。

atomic 的多线程平安

聊我的项目,都具体做了什么。

nonatomic 在本人治理内存的环境

三面

应该是 Eva 吧,次要理解一些集体的状况,以及一些我的项目,最初问了冀望的薪资,而后当场就给了 offer。

快手

一面

问了对于数据库的一些问题,SQLite 的相干操作,没方法,我在华为惟一一个做的和 iOS 相干的我的项目,然而不太善于数据库。

网络相干的问题,网络的五层模型,又问了 TCP 和 TIP,还有 iOS 相干的长连贯,这里问的比拟深。

开始 iOS 相干的常识,视觉控制器的生命周期(view 的生命周期)内存告急的解决(手动开释不可见视图的内存和成员变量)

第一面这就算过关了期待二面。

二面

问了我的项目相干的问题,这部分依据本人的我的项目教训,因为大家的教训都不同,这里我就不具体说了。

设定一个场景,怎么去实现相应的性能,因为快手这个部门想做社交,因而这里是问我是如何实现微信的联系人页面(包含与服务端有什么样的交互)

最初也是一个算法,写出所有数组的子序列

二面面试官是这个组的 Eva,跟我讲了当初这个组的倒退状况和快手当初的状况,因为快手成长很快,所以不能仅仅依附一个 APP,还须要在其余方面进行一些尝试,而这个组的工作就是在一些方面做一些尝试,大略就是这个样子。

三面

HR 上来很亲切,问了我一些面试的状况,难不难之类的,而后又聊了聊我大学和研究生状况,我只想说我“too simple , too naive“,大略理解我后,只跟我聊我的有余,以此来压低我冀望的薪水。说了一下薪资冀望,加了微信,让我回去期待,说发 offer 大略是 2 周工夫,因为须要走各种审批流程,让我不要焦急。

快手是一个很年老的公司,技术还是须要肯定的积攒,心愿不要像小咖秀一样过眼云烟。

美团外卖

一面

1、简历上写的我的项目问了一遍,而后开始问知识点。

2、volley 的源代码,在图片缓存局部探讨了挺长时间,http 中缓存机制,

3、视觉控制器的生命周期

4、数据库

5、多线程(NSTread、NSOPeration、GCDA+block)

6、http 协定 get post 的区别

7、手机适配一些计划

8、真机调试、我的项目上线注意事项

9、静态方法是否能被重写

这些大略聊了 1 个半小时,开始的时候还有些缓和,缓缓聊开了,就好多了,面试官的语速有点快,老是须要面试官反复一遍,我也不经意间语速也变快了,不过能看进去面试官还是很厉害的。

二面

2 次握手和 3 次挥手的起因,以及为什么须要这样做。

1、id 和 nill 代表什么(nill 和 NULL 的区别)

2、向一个 nill 对象发送音讯会产生什么?

3、过程与线程区别

5、写一个 NSString 类的实现

6、http 中的同步和异步

聊了一些我的项目上做的货色, 问了问职业规划

因为二面面试官不是做 iOS,原本面试我的人长期散会去了,所以这一轮面试没怎么问 iOS 相干常识,不过二面面试官始终是微笑,所以这一轮很轻松,更像是一起探讨问题。

面试完曾经是下午 4:30 了,因为面试当天是星期五,而周五美团的会议比拟多,所以等了会,二面面试官说三面面试官在散会,面试另约工夫,我还是说这次一次面试完吧,这一等就等了 2 个半小时,期间 hr 跟我说三面面试官是个大牛。

三面

我认为 iOS 做的优良的几个中央,而后又依据我说的问了问比拟深刻问题。

1、iOS 是如何进行资源管理的。

2、Python 比拟重要的几个个性

3、网络五层构造,每一层协定,因为我网络不是很好,还问了一些其余的问题(例如 MAC 地址和 ip 地址的区别等)。

为什么来到原来公司,以及职业规划,而后因为面试完大略就早晨 8 点了,就先让我回去,下周让 HR 跟我分割,我想这是应该通过面试了吧。

美团技术还是很厉害的,从面试官的程度就可以看进去,尤其是外卖外围部门,办公环境是不错,然而感觉就是有点乱,不晓得是不是因为明天面试的人很多,基本上始终有很多人来回走动,有一些嘈杂。

阿里

梦寐以求的阿里终于找我来面试了,没方法谁让马云爸爸太厉害,我投递的是杭州的天猫,是做虚拟现实的小组(刚听到这个名字感觉和本人不太相符),这是我到面试完后,才晓得的,面试官也跟我说 iOS 上的需要可能不会很多,更多的是 AR 技术在 iOS 上的利用,蕴含 OpenGL 等技术。

一面

询问了我博客上写的一些货色,从我的项目立意谈起,到设计,再到具体的技术实现,堪称是八面玲珑,因为本人写的博客还是比拟相熟,答复的还不错。

1、GLSurfaceView 的相干常识,OpenGL,Shader,绘制流程。

2、询问以后做的我的项目,以及到具体的实现和优化。

3、多过程间的通信,Binder 机制。

4、询问看过哪些框架源码,EventBus,Volley 讲了一下。

大略聊了一个小时左右,聊得还能够,基本上都答复上了,两头给了我很多倡议,不懂的中央,也会认真跟我解说一番,其实有一半的工夫都是跟我聊产品,为什么这个产品好,怎么做能力投合市场,而后怎么设计整个产品等,感觉跟我当初程度不是一个档次的,果然,第二天就给我发了一封邮件,说我当初临时不太适合投递的岗位。

面试后果

除了阿里淘宝外,其余的公司根本都拿到 offer。

最初总结

本人对于互联网有一些小小的见解:随着资本的冷却,整个互联网市场也逐步的冷静下来。iOS 利用开发从一开始能说几个四大组件的名词,能轻易写个监听事件,就能拿到高达上万的月薪的时代了。

归根到底并不是工作难找了,而是 iOS 利用开发工程师这个职位曾经趋于失常,再也不是没什么技术也能拿高工资的香饽饽。当然这个也不是相对的,对于中高级的开发人员来说,市场还是比拟短少的,尤其是知名企业对于招聘员工来说,不仅要求有过硬的技术,还要求有高素质,好的教育背景等等。

总的来说,高工资能够给你,然而前提条件是你要足够优良,或者说让面试官感觉你很优良。

口试

对于社招的同学来说,基本上不须要口试,然而也有公司是须要的,例如 今日头条和网易都有口试。口试都是比拟根底的一些常识,Python、iOS 等方面的,个别不会有网络,计算机等方面的口试,个别状况下大家都能答出来。

一、二面

近一段时间的面试经验来说,一、二面的问题没有什么很大的区别(公司基本上都有 3 面技术面,然而也有例外,我在美团就是 2 面技术面。),基本上都是一线开发人员。次要考查你是否有牢固的基础知识和是否在平时开发中能纯熟应用。

是否能解说分明你所做的我的项目,以及应用到的相干常识。

1、iOS 基础知识

2、Python 基础知识,大略是多线程,线程平安,汇合类,JVM,类相干常识等。

3、iOS 一些源码的浏览

4、优良的第三方框架源码浏览

三、四面

个别公司都是三轮技术面,然而也有四轮技术面的,不过不多。很多公司基本上每一轮面试官都会记录他所询问的问题,以便给下一轮面试官作参考,还有就是防止对同一个知识点屡次询问。所以到了这轮面试,基本上不会再询问比拟根底的常识。

会从两个方面考查,

  • 1、广度:比拟新的技术(多线程,插件化等),http 协定,数据库,iOS(个别不会询问之前面试官问过的问题)。
  • 2、深度:个别会通过 1 或 2 个问题来考查,例如:我的项目中的奉献,所做的优化。设计能力,基本上不多,这个要看面试的岗位,因为我这里面试的只是高级开发,并不是架构。

工作中的亮点和突出。

HR 面

基本上到了这轮,你就算通过面试了。hr 会询问一些你的经验,最次要的还是和你约定薪资待遇。在这轮,大家应该要对本人的薪资程度有一个大体的理解,个别都是在原来的工资根底上增长 20%~30% 的样子,当然,如果你在面试过程中体现十分优良,也能够不受这个限度。当然如果公司诚心要你,就算你要的工资过高,hr 也会婉转的通知你,不会间接把你 pass。

作为一个开发者,有一个学习的气氛跟一个交换圈子特地重要这是一个我的 iOS 交换群:642363427,不论你是小白还是大牛欢送入驻,分享 BAT, 阿里面试题、面试教训,探讨技术,大家一起交流学习成长!

文章来源于网络,如有侵权,请分割小编删除。

退出移动版