面经包含: 携程阿里京东腾讯
十一假期, 秋招基本上已经结束了, 剩下少量面试和少量流程中虽然还没有最终决定, 不过也还是决定来开个帖子, 写一些总结回馈一下牛客
楼主是今年春招的时候开始接触的牛客, 主要是看看面经和一些最新消息真题做的很少, 很水 ==, 惭愧惭愧然后秋招的时候由于实习比较忙, 所以基本上就只投了秋招正式批, 内推要么没投, 要么踩线投, 直接没了音信
楼主 iOS 开发 (已经属于小众团体了), 主要用的 Swift 语言(我就没发现有和我一样的) 下面上一些面经, 希望能够对大家有那么一点点帮助
今日头条
楼主春招的时候采用的是广撒网的战术 (因为当时完完全全是个菜鸡, iOS 大部分都是边春招边学的) 也是侥幸拿到了头条暑期实习生的 offer, 然后阴差阳错的决定到北京来实习, 然后暑期结束之后拿到转正的 offer
当初巧合来的头条, 来了之后觉得特别好, 哈哈, 趁机推荐一波实习工资 (正式还没谈) 福利部门地理位置都还不错, 到现在也还在实习
携程
携程是一家很令人蛋疼的公司
内推投了携程, 通过了测评然后进入了漫长的等待, 某周打电话跟我说, 问我能不能去上海面试, 我说我在北京实习, 能不能远程面试 hr 倒是很爽快的答应了, 并且约定两天后面试
然而, 就此被鸽, 进入了漫长的等待期后来给携程校招组发反馈, 终于获得了面试机会, 两轮面试感觉答得还行, 题也不是很难, 然而就那么突然有一天 gg 了
携程面试题
一面
请问访问 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 相加的计算结果是否了解无尾随递
请看下面一段代码
程序结果将输出
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 有什么看法?
能对 Swif 中的可选类型谈下你的理解吗?
说一下快排的伪代码和时间复杂度?
怎么判断两个链表是否相交?
怎么反转二叉树?
了解元组吗?
了解多线程吗?
什么是并行?
现在有 ABC 三个任务, 如何实现 AB 完成后再执行 C?
对 Runtime 有什么了解?
HTTP 和 HTTPS 有什么区别?
知道 HTTPS 通信过程吗?
Struct 和 Class 有什么区别?
腾讯
腾讯的面试真的非常的注重基础, 两个面官都对 iOS 不是很懂, 而且对项目也没有太深入的探讨, 只是让说了一下项目的架构, 感觉就是想确认一下这个东西是不是你自己做的第一面面完之后完全没涉及到 iOS 相关的知识, 导致我面完之后问面试官是不是我当时投错了岗 ==! 另外, 腾讯 HR 态度是真的很好, 赞一个
一面
为什么要设计 Cache?Cache 分级有什么好处?
如何保证多核数据的一致性?
c++ new 和 malloc 有什么区别?
c++ 可不可以多继承?
c++ 引用和指针的区别?
如何判断两个链表是否有交点?
堆区和栈区有什么区别? 为什么要这么设计?
给栈增加一个 Max 函数接口, 返回当前栈的最大值, 应该如何设计?
给定排好序的整数数组 array[]以及整数 n, 如何找出和为 n 的两个数?
如果没排好序呢?
一个字符串, 如何找出只出现一次并且最先出现的字符?
二面
反转字符串
判断整数是否为 $2^n$
一个 m*n 的棋盘, 有些格子不能走, 如何找到左上角到右下角的最短路径?
iOS 按下 Home 键之后会发生什么?
c++ 中内存分配是怎样的?
c++ 中常用的容器有哪些?
queue 和 vector 有什么区别?
vector 底层是怎么实现的?
TCP 三次握手? 为什么两次不行?
项目中有没有服务器 push 机制?
来源: http://www.jianshu.com/p/53a9b45db54a