大厂面试(二)

一、上海青客

1、UIView 于 CALayer 的区别
2、页面布局的方式
3、如何优化TableView的流畅性
4、OC与JS交互所用的方式,并简述一下
5、列举常用的设计模式,并说明使用场景
6、列举数据持久化的几种方式,及优缺点
7、数据库读写中用到的多线程是什么?多线程如何同时操作一个数据库
8、多个线程读取数据如何保证不出错
9、2个app间通讯(调用)方式,及两个app间如何进行数据传输?
10、block与函数有什么区别,block的优点有哪些?声明一个block及实现
11、使用swift3.0写一个单例


二、易车网(2017)

1、讲一下你们的项目结构

  • 使用的设计模式
  • 对比其他项目有什么新的技术
  • 非功能性模块有哪些

2、MVC设计模式中C层需要做哪些工作,对MVVM的理解以及对比MVC中C层中功能拆解位置划分
例如:对于MVC中C层中数据处理转为MVVM是所处的位置VM层还是M层(胖瘦Model的问题)
3、view的frame和bounds.当对view进行旋转之后frame以及bounds有什么变化
4、UIView和CALayer的关系以及各自的继承关系.
5、iOS中的事件响应机制(response Chain)
6、TCP,UDP有什么区别,讲解一些对于Socket的理解
7、Decorator模式与Category,给类添加方法(继承,Category和Runtime添加)
8、动画的种类和实现过程(basic动画,keyFrame动画,Spring动画)

9、Block

  • 根据在内存中所处的位置有哪几种(global,stack,heap)
  • global和stack类型的区别
  • 能不能将block添加到数组或者字典中,会有什么问题

10、RunLoop

  • 解释一下RunLoop
  • RunLoop有几种状态
  • RunLoop的mode有什么作用
  • RunLoop与线程之间的关系
  • 系统是怎么实现RunLoop的mode切换
  • NSTimer与RunLoop的经典问题 怎么解决
  • RunLoop的mode切换需要做什么(自定义的异步线程)PS 可能跟source1和source0有关

三、(滴滴架构师:孙源sunny)DynamicCocoa项目招聘

WechatIMG1408.jpeg

四、广州某公司面试题(2018.07)

简答
1、使用NSLog函数输入一个浮点类型,结果四舍五入,并保留一位小数
2、在一个对象的方法里面:self.name = “object”, 和 name = “object”有什么不同
3、定义属性时,什么情况下使用copy, assign, 和 retain
4、简述object-c内存管理机制,并简述什么时候由你负责释放对象,什么时候不由你释放
5、Object-c的类可以多重继承么?可以实现多个接口么?

程序设计
1、求n个数的和 1/2 + 1/3 + 1/4 + … + 1/n
2、求第N个数是多少 1,1, 2, 3, 5, 8, 13, 21
(a)可用一个数组,把n个数都保存在数据中从而求第n个数
(b)用多个变量循环求第n个数
(c)用递归求第n个数
3、请走完程序,求出数组中,连续几个数字相加和最大

    int num[12] = {2, 7, -10, 8, 22, -2, 13, -9, 5, 3, -8, 7};
    int sum = 0;
    for (int i = 0; i < 12; i ++)
    {
        int temp = 0;
        for (int j = i; j < 12; j ++)
        {
            ____________
            ____________
            ____________
        }
    }
    printf(sum);

算法题
1、一个农夫,买了一头小牛,这头小牛成长到第四年开始,会每年生一头小牛,所出生的小牛成长到第四年开始,也会每年生一头小牛,请问N年后,农夫共有多少头牛。(请写出代码实现)。
2、一个文件中有40亿个 不重复的 unsigned int 整数,没有排过序的,如何快速判断某个数是否在那40亿个数当中?描述关键代码或者主要思路即可。
3、有一个玻璃瓶,里面装了若干糖果。两个人轮流拿,每次只能拿1-3颗。如果让你先拿,你有什么策略保证,每次都能拿到最后一颗。


五、一个不知名的公司面试题

基础题
1、二选一(20%)

  • 利用rand5 生成 rand7(randN等概率随机输入1、2、…、N)
  • 单次批量生成100个不重复的 0—200的随机数(即不可逐个记录已选出的数)

2、二选一(20%)

  • 判断一个链表是否有环,并定位环的位置
  • 单链表原地逆制,不使用递归,复杂度O(n)

编程题 (60%)
快速、归并、堆排序(三选一)


六、某公司二面

1、写二叉树的先序遍历,然后用非递归写
2、写快排,并分析原理
3、http协议
4、http为什么底层是tcp不是udp ?
5、tcp是基于流式传输的,怎么设计协议,进行协议的解析?
6、tcp为什么要进行三次握手?不是2次,4次?
7、抓包工具的原理是啥?
8、socket异常断开时,设计一个合理的重连机


七、

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、解释一下keywords的区别:assign weak __block, __weak
2、__block在arc和非arc下含义相同么
3、使用atomic一定是线程安全吗
4、描述一个你遇到过的retain cycle
5、+(void)load; +(void)initalize有什么用处.
6、为什么其他语言里叫函数调用,oc里则是给对象发消息(或者谈一下对runtime理解)
7、什么是method swizzling
8、UIView 和 CALayer的关系
9、如何高性能的给UIImageView加圆角
10、讲讲你用Instrument优化动画性能的经历
11、loadView是干什么用的。


九、一个2015年的老篇面试题

1、什么是arc?(arc是为了解决什么问题诞生的?)
2、请解释以下keywords的区别: assign vs weak, __block vs __weak
3、__block在arc和非arc下含义一样吗?
4、使用atomic一定是线程安全的吗?
5、描述一个你遇到过的retain cycle例子。(别撒谎,你肯定遇到过)
6、+(void)load; +(void)initialize;有什么用处?
7、为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)
8、什么是method swizzling?
9、UIView和CALayer是啥关系?
10、如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)
12、使用drawRect有什么影响?(这个可深可浅,你至少得用过。。)
13、ASIHttpRequest或者SDWebImage里面给UIImageView加载图片的逻辑是什么样的?(把UIImageView放到UITableViewCell里面问更赞)
14、麻烦你设计个简单的图片内存缓存器(移除策略是一定要说的)
讲讲你用Instrument优化动画性能的经历吧(别问我什么是Instrument)
15、loadView是干嘛用的?
16、viewWillLayoutSubView你总是知道的。。
17、GCD里面有哪几种Queue?你自己建立过串行queue吗?背后的线程模型是什么样的?
18、用过coredata或者sqlite吗?读写是分线程的吗?遇到过死锁没?咋解决的?
19、http的post和get啥区别?(区别挺多的,麻烦多说点)
20、我知道你大学毕业过后就没接触过算法数据结构了,但是请你一定告诉我什么是Binary search tree? search的时间复杂度是多少?我很想知道!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,634评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,951评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,427评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,770评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,835评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,799评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,768评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,544评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,979评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,271评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,427评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,121评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,756评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,375评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,579评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,410评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,315评论 2 352

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 29,362评论 8 265
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 11,094评论 1 32
  • 人也好、动物、植物也好,但凡生物都是灵魂与肉体的结合体。 以人为例,灵魂暂离肉体,即是做梦,灵魂长久离开肉体,即是...
    长沙龙卓阅读 886评论 2 1