面经包含:携程、阿里、京东、腾讯c++
五一假期,春招基本上已经结束了,剩下少许面试和少许流程中。虽然尚未最终决定,不过也仍是决定来开个帖子,写一些总结。web
楼主是今年春招的时候开始看看面经,真题作的不多,很水=。=,惭愧惭愧。而后秋招的时候因为实习比较忙,因此基本上就只投了秋招正式批,内推要么没投,要么踩线投,直接没了音信……面试
楼主iOS开发,主要用的Swift语言。下面上一些面经,但愿可以对你们有那么一点点帮助。数组
今日头条
楼主春招的时候采用的是广撒网的战术(由于当时完彻底全是个菜鸡,iOS大部分都是边春招边学的。。)也是侥幸拿到了头条暑期实习生的offer,而后阴差阳错的决定到北京来实习,而后暑期结束以后拿到转正的offer。缓存
当初巧合来的头条,来了以后以为特别好,哈哈,趁机推荐一波。实习工资(正式还没谈)、福利、部门、地理位置都还不错,到如今也还在实习。安全
携程
携程是一家很使人蛋疼的公司。bash
内推投了携程,经过了测评。而后进入了漫长的等待,某周打电话跟我说,问我能不能去上海面试,我说我在北京实习,能不能远程面试。hr却是很爽快的答应了,而且约定两天后面试……服务器
然而,就此被鸽,进入了漫长的等待期。后来给携程校招组发反馈,终于得到了面试机会,两轮面试感受答得还行,题也不是很难,然而就那么忽然有一天gg了。微信
携程面试题
一面
请看下面一段代码static int a = 1; int main(){ int m = 2; char *n = NULL; l = (char *)malloc(100 * sizeof(char)); return 0; }
请问访问m,n,l 3种类型变量的效率从高到低依次是() A. lnm B. mnl C. mln D. nlm
请写出一个单例
请写出程序计算结果 AB两地相距1000米,小明从A地点以30米/分钟的速度向B地点走,小白从B地点以20米/分钟的速度向A地点走,两人同时出发,用代码写出他们多少分钟后遇到?
请写出程序输出结果 对数组 ["12-12","12-11", "12-11", "12-11", "12-13", "12-14"] 去重同时进行排序
使用递归方法计算99到1相加的计算结果。是否了解无尾随递归?
请看下面一段代码
- (void)viewDidLoad
{
[super viewDidLoad];
dispatch_queue_t queue1 = dispatch_get_main_queue();
dispatch_async(queue1, ^{NSLog(@"222 Hello?" );});
NSLog(@"aaaaaaa" );
}
复制代码
程序结果将输出 A. 死锁 B. 打印“aaaaaaa 222 Hello?” C. 打印“222 Hello? aaaaaaa” D. 打印“”网络
二面
请说一说UITableView的重用机制
请说一说你对Objective-C中property字段的了解
请说一说你对iOS中内存管理的了解。ARC底层时如何实现的?
你是如何进行网络层的封装的?
你是如何学习iOS开发的?
阿里巴巴
我对阿里总体印象仍是不错的。春招的时候动做特别慢,基本隔两周面试一次,最后发offer都等了快一个月。不过此次秋招动做很快,两天就搞完了三面,两面技术都是很快,并且也都是问问项目,感受加起来还没hr面时间长。
阿里面试题
一面
为何要用Alamofire而不用原生的NSURLSession,Alamofire的优点是什么?
若是让你来封装一个网络库,相似于Alamofire或者SDWebImage,你会如何实现?
在网络库中,如何针对TableView快速滚动过程当中的图片额外渲染进行优化(网络库不能持有TableView)?
二面
iOS的系统架构是怎么样的?经常使用SDK有哪些?
了解HTTP协议吗?GET和POST的区别是什么?
对安全方面有何了解?如何应对web页面被劫持?了解HTTPS加密解密的过程吗
京东
京东整体来讲仍是体验不错的,和前两面的面试官相谈甚欢。总体感受一面面官很注重基础,二面面官更看重项目一些,基本上都是根据简历和项目来问的。然而就在我志得意满之时忽然接到了三面的电话(说好的只有两面技术面呢),而后各类怼我……
京东面试题
一面
讲一讲你对iOS内存分配的理解?值类型和引用类型?
假设ViewController中须要用一个Blcok来改变ViewController中的一个属性,须要怎么实现?
这样实现以后,这个Block在内存中被存在何处?引用关系又是怎么样的?
函数中的闭包,若是要求闭包执行完后马上改变函数中某个变量的值,应该如何实现?
如何实现一个相似于微信聊天界面的布局?
如何用Auto Layout实现一个以下要求的布局: %^&@$^@(#!...... (说了一大堆 =。= 反正就是使用优先级就解决了)
二面
说一说 MVC 和 MVVM 的区别,以及各自的优缺点。
如何将 MVC 改形成 MVVM ?在MVVM中,网络请求、缓存处理的部分应该放在哪一个模块?
为何说Swift是面向协议的语言?使用 Protocol 有什么好处?
比较一下 Swift 和 Objective-C 在语言层面上的安全性?
若是ViewController中使用闭包时,用weak避免循环引用,会有什么问题?
当点击一个View时,发生了什么?如何扩大点击区域?
如何对TableView进行优化?
能讲一讲你对光栅化的理解吗?
三面
对Swift和OC有什么见解?
能对Swift中的可选类型谈下你的理解吗?
说一下快排的伪代码和时间复杂度?
怎么判断两个链表是否相交?
怎么反转二叉树?
了解元组吗?
了解多线程吗?
什么是并行?
如今有ABC三个任务,如何实现AB完成后再执行C?
对 Runtime 有什么了解?
HTTP 和 HTTPS 有什么区别?
知道 HTTPS 通讯过程吗?
Struct 和 Class 有什么区别?
腾讯
腾讯的面试真的很是的注重基础,两个面官都对iOS不是很懂,并且对项目也没有太深刻的探讨,只是让说了一下项目的架构,感受就是想确认一下这个东西是否是你本身作的。第一面面完以后彻底没涉及到iOS相关的知识,致使我面完以后问面试官是否是我当时投错了岗=。=!另外,腾讯HR态度是真的很好,赞一个。
一面
为何要设计Cache?Cache分级有什么好处?
如何保证多核数据的一致性?
c++ new 和 malloc 有什么区别?
c++ 可不能够多继承?
c++ 引用和指针的区别?
如何判断两个链表是否有交点?
堆区和栈区有什么区别?为何要这么设计?
给栈增长一个Max函数接口,返回当前栈的最大值,应该如何设计?
给定排好序的整数数组array[]以及整数n,如何找出和为n的两个数?
若是没排好序呢?
一个字符串,如何找出只出现一次而且最早出现的字符?
二面
反转字符串
判断整数是否为
一个m*n的棋盘,有些格子不能走,如何找到左上角到右下角的最短路径?
iOS 按下 Home 键以后会发生什么?
c++中内存分配是怎样的?
c++中经常使用的容器有哪些?
queue和vector有什么区别?
vector底层是怎么实现的?
TCP三次握手?为何两次不行?
项目中有没有服务器push机制?
结语
春招投的简历很少,面试也就这几家,还有几家在安排面试,以后有更新再继续更新。若是有想看答案的,或者以为在这里格式不是很清晰的,能够添加iOS开发者交流群:763164022 !答案在群文件里面都是有的!