刷完这300道面试题,请问我能够去Bat面试了吗?

100家知名企业今年来iOS面试题合集:

你要的这里都有;java

企业要的这里也有;ios

从基础开始到进阶、深刻底层web

整理出188个面试题,全是干货面试

这些所有是题目跟类目,每一个题目都会有相对的答案,因为字数太多因此我整理出一个文档,文档获取地址,做者建立的iOS行业交流群:763164022,加群在群文件下载算法

目录展现:

一、swift和oc的区别sql

二、编译连接数据库

三、synthesize & denamicswift

四、在项目开发中经常使用的开发工具备哪些?设计模式

五、UITableView & UICollectionapi

六、NSProxy & NSObject

七、Object & Swift

八、传值通知 & 推送通知(本地&远程)

九、第三方库 & 第三方平台

十、NSCache & NSDcitionary

十一、 UIView的setNeedsDisplay和setNeedsLayout方法

十二、UILayer & UIView

1三、layoutSubViews & drawRects

1四、UDID & UUID

1五、CPU & GPU

1六、点(pt)& 像素(px)

1七、属性与成员变量

1八、int和NSInteger的区别

(1)import和include

(2)@class

(3)全局 & 静态变量

1九、类和对象

(1)分类拓展协议中哪些能够声明属性?

(2)继承和类别的区别

(3)分类的做用

(4)分类的局限性

20、category & extension

2一、Foundation

(1)字符串

(2)字符串截取

(3)格式

2二、NSArray和NSDictionary

(1)iOS遍历数组/字典的方法

(2)NSValue NSNumber

(3)其它

(4)如何避免循环引用

2三、CFSocket使用有哪几个步骤

2四、Core Foundation中提供了哪几种操做Socket的方法?

2五、解析XML文件有哪几种方式?

2六、什么是沙盒模型?哪些操做是属于私有api范畴?

2七、在一个对象的方法里面:self.name= “object”;和 name =”object” 有什么不一样吗?

2八、请简要说明viewDidLoad和viewDidUnload什么时候调用

2九、建立控制器、视图的方式

30、简述内存分区状况

3一、队列和栈有什么区别

3二、iOS的系统架构

3三、控件主要响应3种事件

3四、xib文件的构成分为哪3个图标?都具备什么功能

3五、简述视图控件器的生命周期

3六、app 项目的生命周期

(1)应用的生命周期

(2)简要说明一下APP的启动过程,main文件提及,main函数中有什么函数?做用是什么?

(3)UIApplicationMain函数做用

(4)main函数做用

3七、 动画有基本类型有哪几种;表视图有哪几种基本样式。

3八、实现简单的表格显示须要设置UITableView的什么属性、实现什么协议?

3九、Cocoa Touch提供了哪几种Core Animation过渡类型?

40、UIView与CLayer有什么区别?

4一、Quatrz 2D的绘图功能的三个核心概念是什么并简述其做用

4二、iPhone OS主要提供了几种播放音频的方法?

4三、使用AVAudioPlayer类调用哪一个框架、使用步骤?

4四、有哪几种手势通知方法、写清楚方法名?

4五、ViewController的didReceiveMemoryWarning怎么被调用

4六、何时用delegate,何时用Notification?

4七、用预处理指令#define声明一个常数,用以代表1年中有多少秒(忽略闰年问题)

4八、写一个”标准"宏MIN ,这个宏输入两个参数并返回较小的一个。

4九、关键字const有什么含意?修饰类呢?static的做用,用于类呢?还有extern c的做用

50、关键字volatile有什么含意?并给出三个不一样的例子

5一、一个参数既能够是const还能够是volatile吗? 一个指针能够是volatile 吗?解释为何。

5二、static 关键字的做用

5三、列举几种进程的同步机制,并比较其优缺点。

5四、进程之间通讯的途径

5五、进程死锁的缘由

5六、死锁的4个必要条件

5七、死锁的处理

5八、cocoa touch框架

5九、自动释放池是什么,如何工做

60、sprintf,strcpy,memcpy使用上有什么要注意的地方

6一、你了解svn,cvs等版本控制工具么?

6二、什么是push

6三、静态连接库

6四、OC三大特性

(1)封装_点语法

(2)继承

(3)多态

6五、OC中如何实现多态

6六、Objective-C的优缺点

6七、对于OC,你认为最大的优势和最大的不足是什么?对于不足之处,如今有没有可用的方法绕过这些不足 来实现需求。若是能够话,有没有考虑或者实现太重新实现OC的功能,若是有,具体怎么作?

6八、oc中可修改和不能够修改类型

6九、咱们说的oc是动态运行时语言是什么意思?

70、通知和协议的不一样之处?

7一、什么是推送消息?

7二、关于多态性

7三、什么是谓词?

7四、作过的项目是否涉及网络访问功能,使用什么对象完成网络功能?

7五、简单介绍下NSURLConnection类及+sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别?

7六、谈谈Object-C的内存管理方式及过程?

7七、Object-C有私有方法吗?私有变量呢?

7八、说说响应链

7九、时间传递 & 响应者链

80、frame和bounds有什么不一样?

8一、方法和选择器有何不一样?

8二、OC的垃圾回收机制?

8三、什么是延迟加载?

8四、是否在一个视图控制器中嵌入两个tableview控制器?

8五、一个tableView是否能够关联两个不一样的数据源?你会怎么处理?

8六、何时使用NSMutableArray,何时使用NSArray?

8七、给出委托方法的实例,而且说出UITableVIew的Data Source方法

8八、在应用中能够建立多少autorelease对象,是否有限制?

8九、若是咱们不建立内存池,是否有内存池提供给咱们?

90、何时须要在程序中建立内存池?

9一、类NSObject的那些方法常常被使用?

9二、什么是简便构造方法?

9三、如何使用Xcode设计通用应用?

9四、 UIView的动画效果有那些?

9五、Object-C有多继承吗?没有的话用什么代替?cocoa 中全部的类都是NSObject 的子类

9六、内存管理 Autorelease、retain、copy、assign的set方法和含义?

9七、C和obj-c 如何混用

9八、类别的做用?继承和类别在实现中有何区别?

9九、类别和类扩展的区别。

100、oc中的协议和java中的接口概念有何不一样?

10一、深拷贝与前拷贝区别

(1)什么是深拷贝浅拷贝

(2)字符串何时使用copy,strong

(3)字符串所在内存区域

(4)mutablecopy和copy @property(copy) NSMutableArray *arr;这样写有什么问题

(5)如何让自定义类可使用copy修饰符

10二、对于语句NSString*obj = [[NSData alloc] init]; obj在编译时和运行时分别时什么类型的对象?

10三、#import 跟#include 又什么区别,@class呢, #import<> 跟 #import”"又什么区别?

10四、Objective-C的类能够多重继承么?能够实现多个接口么?Category是什么?重写一个类的方法用继承好 仍是分类好?为何?

10五、 #import 跟#include 又什么区别,@class呢, #import<> 跟 #import””又什么区别?

10六、写一个setter方法用于完成@property (nonatomic,retain)NSString *name,写一个setter方法用于完成@property(nonatomic,copy)NSString *name

10七、常见的Objective-C的数据类型有那些, 和C的基本数据类型有什么区别?如:NSInteger和int

10八、id 声明的对象有什么特性?

10九、Objective-C如何对内存管理的,说说你的见解和解决方法?

1十、原子(atomic)跟非原子(non-atomic)属性有什么区别?

1十一、看下面的程序,第一个NSLog会输出什么?这时str的retainCount是多少?第二个和第三个呢? 为何?

1十二、内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象须要手动释放?在和property结合的 时候怎样有效的避免内存泄露?

11三、如何对iOS设备进行性能测试?

11四、设计模式

(1)mvc模式

(2)单例模式

(3)mvvm模式

(4)观察者模式

(5)工厂模式

(6)代理模式

(7)策略模式

(8)适配器模式

(9)模版模式

(10)外观模式

(11)建立模式

(12)MVP模式

11五、MVVM模式原理分析

11六、说说经常使用的几种传值方式

11七、何时用delegate,何时用Notification

11八、对于单例的理解

11九、从设计模式角度分析代理,通知和KVO区别?ios SDK 提供 的framework使用了哪些设计模式,为何使用?有哪些好处和坏处?

120、KVO,NSNotification,delegate及block区别

12一、运行时(runTime)

12二、runtime/消息转发机制

(1)runtime

1.一、什么是runtime

1.二、runtime干什么用,使用场景

(2)消息机制

2.一、消息转发的原理

2.二、SEL isa super cmd 是什么

(3)动态绑定

12三、使用bugly进行崩溃分析

12四、jenkens 持续打包

12五、KVO & KVC

(1)底层实现

(2)KVO概述

(3)KVC概述

12六、什么是KVO和KVC?

KVO和KVC

(1)如何调用私有变量,如何修改系统的只读属性,KVC的查找顺序

(2)什么是键-值,键路径是什么

(3)kvo的实现机制

(4)KVO计算属性,设置依赖键

(5)KVO集合属性

(6)kvo使用场景

12七、SDWebImage(SDWebImage的实现机制)

(1)主要功能

(2)缓存

(3)内存缓存与磁盘缓存

12八、框架 SDWebimage的缓存机制

12九、网络安全

密码的安全原则

130、多线程

(1)多线程概念

(2)多线程的做用

(3)使用场景

13一、NSOperationQueue和GCD的区别是什么

13二、GCD与NSThread的区别

13三、进程和线程的区别与联系是什么?

13四、别异步执行两个耗时操做,等两次耗时操做都执行完毕后,再回到主线程执行操做. 使用队列组(dispatch_group_t)快速,高效的实现上述需求

13五、在项目何时选择使用GCD,何时选择NSOperation?

13六、对比iOS中的多线程技术

13七、多线程优缺点

13八、iOS中的延迟操做

13九、串行队列同步执行和异步主队列

140、资源抢夺解决方案

14一、dispatch_barrier_async的做用是什么?

14二、在多线程Core Data中,NSC,MOC,NSObjectModel哪些须要在线程中建立或者传递?你是用什么策越来 实现的?

14三、+(void)load与 +(void)initialize区别load 和 initialize方法的区别

14四、http的post与区别与联系,实践中如何选择它们?

14五、说说关于UDP/TCP的区别?

14六、http和scoket通讯的区别?socket链接相关库,TCP,UDP的链接方法,HTTP的几种经常使用方式?

14七、HTTP请求经常使用的几种方式

14八、block

(1)使用block时什么状况会发生引用循环,如何解决?

(2)在block内如何修改block外部变量?

(3)Block & MRC-Block

(4)什么是block

(5)block 实现原理

(6)关于block

(7)使用block和使用delegate完成委托模式有什么优势

(8)多线程与block

(9)谈谈对Block 的理解?并写出一个使用Block执行UIVew动画?

(10)写出上面代码的Block的定义(接上题)

14九、Weak、strong、copy、assign 使用

(1)什么状况使用 weak 关键字,相比 assign 有什么不一样?

(2)怎么用 copy 关键字?

(3)weak & strong

(4)这个写法会出什么问题: @property (copy) NSMutableArray *array

(5) 如何让本身的类用 copy 修饰符?如何重写带 copy 关键字的 setter?

(6) @property 的本质是什么?ivar、getter、setter 是如何生成并添加到这个类中的

(7)ivar、getter、setter 是如何生成并添加到这个类中的?

(8)用@property声明的NSString(或NSArray,NSDictionary)常用copy关键字,为何?若是改用s

trong关键字,可能形成什么问题?

(9)@protocol 和 category 中如何使用 @property

(10)runtime如何经过selector找到对应的IMP地址? (11)retain和copy区别

(12)copy和strong的使用?

(13)NSString和NSMutableString,前者线程安全,后者线程不安全。

(14)readwrite,readonly,assign,retain,copy,weak ,strong,nonatomic 属性的做用

150、OC与JS的交互(iOS与H5混编)

TableView性能优化

UITableView核心思想

UITableView的优化主要从三个方面入手:

15一、TableView为何会卡?

15二、UITableView

(1)UITableView最核心的思想

(2)定义高度

(3)自定义高度原理

(4)老生常谈之UITableView的性能优化

(5)cell高度的计算

(5.1)定高的cell和动态高度的cell

(6)TableView渲染

(7)减小视图的数目

(8)减小多余的绘制操做

(9)不要给cell动态添加subView

(10)异步化UI,不要阻塞主线程

(11)滑动时按需加载对应的内容

(12)离屏渲染的问题

(13)离屏渲染优化方案

15三、环信SDK使用

15四、蓝牙

15五、在iPhone应用中如何保存数据?

15六、什么是coredata?

15七、 什么是NSManagedObject模型?

15八、什么是NSManagedobjectContext?

15九、 iOS平台怎么作数据的持久化?coredata 和sqlite有无必然联系?coredata是一个关系型数据库吗?

160、CoreData & SQLite3

16一、数据存储

(1)数据存储技术

(1.1)数据存储的几种方式

(1.2)各自特色(面试考点)

(1.3)偏好设置(面试考点)

(1.4)归档(面试考点)

(2)数据库技术(SQLite&CoreData)

16二、Objective-C堆和栈的区别?

16三、内存泄露 & 内存溢出

16四、堆 & 栈

(1)堆栈空间分配区别

(2)堆栈缓存方式区别

(3)堆栈数据结构区别

16五、内存管理

(1)内存区域

(1.1)堆和栈的区别

(1.2)iOS内存区域

(2)字符串的内存管理

(3)你是如何优化内存管理

(4)循环引用

(5)autorelease的使用

(5.1)工厂方法为何不释放对象

(5.2)ARC下autorelease的使用场景

(5.3)自动释放池如何工做

(5.4)避免内存峰值

(5.5)ARC和MRC的混用

(5.6)NSTimer的内存管理

(5.7)ARC的实现原理

16六、Runloop

16七、fmmpeg框架

16八、fmdb框架

16九、320框架

170、UIKit和CoreAnimation和CoreGraphics的关系是什么?在开发中是否使用过CoreAnimation和CoreGrap hics?

17一、trasform

17二、点讲动画和layer ,view的区别

17三、图层与视图

17四、平行的层级关系

17五、图层的能力

17六、使用图层

17七、核心绘图

(1)View和layer的区别

(2)new和alloc init的区别

17八、动画

17九、UICollectionView

(1)何实现瀑布流,流水布局

(2)和UITableView的使用区别

180、UIImage

18一、webview

18二、描述九宫格算法

18三、实现图片轮播图

18四、iOS网络框架

18五、网络

(1)网络基础

(2)网络传输

(3)AFN

18六、AFNetworking & ASIHttpRequest & MKNetWorking

(1)底层实现

(2)对服务器返回的数据处理

(3)监听请求过程

(4)在文件下载和文件上传的使用难易度

(5)网络监控

(6)ASI提供的其余实用功能

(7)MKNetworkKit

18七、性能优化

18八、算法

相关文章
相关标签/搜索