前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【2018秋招iOS面试总结】(渣渣本科生)

【2018秋招iOS面试总结】(渣渣本科生)

作者头像
牛客网
发布2018-04-28 14:24:11
9260
发布2018-04-28 14:24:11
举报
文章被收录于专栏:牛客网牛客网

本人是非985211学校,非计算机专业,技术一般,基础较差。

最开始秋招的时候,一线互联网基本上都投了,但是很多都被刷了,有的是刷了学校,有的是刷了四级(我四级才300多分),有的是刷了专业,但更多的是刷了能力,毕竟我们学校计科学院每年有几个人去BAT

大厂的秋招基本上结束,面试结果不理想,因为只想在成都工作,所以面的公司比较少(就写三个最有代表性的公司)。

写下一点面试中被问到的一些问题给大家参考,也是对自己的不足进行总结。

【百度】(二面挂)

一面:

1.说下线程和进程的区别

2.如何保证线程安全

3.写个算法,输出2~100的素数(然后问你怎么优化,还可以怎么优化,然后还可以怎样优化.....)

4.了解哪些设计模式

5.MVC设计模式的思想是什么?在项目中的运用,然后对比MVVM设计模式

6.堆和栈的区别,工程项目中的哪些数据是储存在堆哪些在栈中

7.iOS中的NSCopying协议,copy,MutableCopy的区别

8.解释属性修饰关键词的作用(weak,strong,copy,readOnly,assgin,nonatomic等)

9.最近看过哪些书?目录结构是怎样的?哪部分内容印象最深?了解过作者吗?

10.你还有什么问题问我?

二面:

1.写二叉树的先序遍历,然后用非递归写

2.写快排,并分析原理

3.http协议

4.http为什么底层是tcp不是udp ?

5.tcp是基于流式传输的,怎么设计协议,进行协议的解析?

6.tcp为什么要进行三次握手?不是2次,4次?

7.抓包工具的原理是啥?

8.socket异常断开时,设计一个合理的重连机制。

9.内存管理

10.iOS开发中用过哪些测试性能的工具

11.instruments它为什么能检测内存泄漏

12.做过的项目有什么技术难点(我说的难点在面试官看来都不是难点)?

13.在10亿个数中如何快速找到最大的前100个数?

14.你有什么创新能力?

15.你还有什么问题问我?

总结:偏向基础,问题逐步深入。

【京东】(二面莫名其妙挂)

一面:

1.解释属性修饰关键词的作用(weak,strong,copy,readOnly,assgin,nonatomic等)

2.项目中用过哪些设计模式

3.结合响应者链条和设计模式,解释事件怎样传递和处理

4.blcok,NSNotification,delegate,Observer比较

5.block为什么会导致循环引用

6.为什么想来京东

7.聊人生

二面:

(项目:因为实习的公司用的SDK组件化的开发模式,拿出来作品一边演示他一边提问,1-6点都是对于我的SDK项目提问)

1.为什么需要组件化?

2.tableView的性能优化

3.SDK的接口设计过程(一般设计为进入业务线提供一个注册方法,在需要的时候使用代理回调。向SDK里传递数据一般用单利模式,开出相应的方法)

4.cocoaPods的实现思路,为什么没有使用cocoaPods管理自己的SDK

5.项目中缓存SDK采用的策略(我们项目主要借鉴了YYCache,采用lru算法,使用sqlite)

6.相对复杂业务交互的处理,采用的设计模式(单利模式配合模板方法模式实现)

7.AFN实现思路,对源码的理解程度

8.项目中如何保证数据的安全性

9.runtime在奇葩需求当中的运用(比如产品要求5和6上面显示不同的字体大小,可以用runtime的交换方法)

9.快排的原理

10.C语言中strlen和sizeof的区别

11.职业规划(开始聊人生)

总结:偏向项目,主要考察对业务的处理熟练度。(这是我最拿手的,二面差不多聊了1个多小时,没有答不上来问题,走的时候我跟面试官都很开心,晚上回去一看官网状态为未通过,伤心极了)

【同花顺】

一面:(问的太基础)

1.对于面向对象的理解

2.内存管理

3.多线程

4.保证线程安全的方式(加锁和GCD栅栏,队列组相关知识)

5.KVC和KVO的使用和注意事项

6.推送的原理

7.tableViewCell的自适应如何实现,如何保证性能

8.堆和栈的区别

二面:

1.SDWebImage的底层实现(我只答到了没有沙盒的时如何实现)

2.简述下runLoop(问了应用程序在不同条件下各个线程runLoop所处模式)

3.一个页面可以由几个控制器共同管理吗

4.http和socket的区别

5.什么时候用集合(NSSet)

6.项目上线或者版本迭代,有过被拒吗?是什么原因?怎么解决?

7.转场动画相关操作

8.绘图相关知识(coreGraphics框架的使用)

9.数据持久化

10.xib和代码适配界面有什么不一样

11.项目中遇到的问题,如何解决(我从所做的项目的框架搭建,模块分布,设计类图,开发,自测,上线一直扯)

12.最早什么时候能够来实习(感觉他们很缺人,但是我问了下他们部门都有30多个iOS开发者!!)

三面:(因为薪资没谈拢加了一次技术面)

1.assgin和weak的区别,代理为什么用assgin

2.类方法:load 和 initialize 有什么区别,一般怎么用它们

3.OC语言的动态机制的理解(开始浅谈runtime)

4.设计模式:代理和观察者模式的对比,单利模式的使用注意点

5.如何设计网络请求框架(我按照AFN的理解去解释了一波)

6.响应者链条

7.iPhone自带的AssistiveTouch你如何实现

8.App包的大小受哪些影响

9.关于debug和release

10.view的生命周期

四面:

(HR面,基本上是闲扯,想着反正拿到offer也不得去,我问他的问题都比他问我的还要多。。。基本上也记不住了)

1.说出你的三个缺点和优点

2.为什么选择同花顺

3.说出你在大学期间干过的最牛逼的一件事

4.对于我们企业文化的理解(我把我实习公司的企业文化吹嘘了一遍,发现这几点基本上放在任何私企都好使:客户至上,团队合作,诚信正直,务实创新)

总结:技术面非常偏向项目,感觉前面两个面试官比较水。

综上所述:秋招的一线互联网公司基本上看中学习能力和刻苦勤奋程度。比如百词斩给出的招聘要求就是精通数据结构和算法,没有实际开发经验的都可以。所以要想去大厂基础是必不可少的,而且必须深入学习。

作者:苟亚明

本文来源于牛客网

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018.02.12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档