iOS面试题01-多线程网络】的更多相关文章

1.面试题方向: 1>.多线程+网络 2>.项目(简历上的项目,每一个细节:技术实现细节.业务.项目周期.人数) 3>.性能优化:图片优化.内存优化(tableView的循环利用) 4>.常见的小操作:发布程序.真机调试.推送 5>.OC:内存管理(重点,ARC与非ARC区别).语法细节.偏僻的语法 2.面试题 1.多线程的底层实现? 答:1>回答可以从”多线程“是从哪个系统中开始使用:Mach是第一个以多线程方式处理任务的系统, 因此多线程的底层实现的底层机制是基于M…
今天早上接到了阿里从杭州打过来的电话面试.虽然近期面试了一些大中型的互联网企业,但是跟素有“IT界的黄浦军校”的阿里面试官接触还是不免紧张. 面试持续了三四十分钟吧,大部分问题都是简历上的项目经验而来的,个人感觉问的不算太难但是却很深入,很明显不是能够背几道面试题能够搞定的.而且每个题基本上都跟优化设计和性能相关. 其中有一道是关于是问“你平时上国外的一些网站吗?上那些网站呢?” 我平时大部分时间就是上stackoverflow.和cocoscontrol github 还有apple 的dev…
AJ分享,必须精品 一:NSThread的基本使用 1:创建和启动线程 一个NSThread对象就代表一条线程 创建.启动线程 NSThread *thread = [[NSThread alloc] initWithTarget:self selector:@selector(sel) object:nil]; [thread start]; // 线程一启动,就会在线程thread中执行self的run方法 主线程相关用法 + (NSThread *)mainThread; // 获得主线程…
AJ分享,必须精品 一:进程和线程 1:什么是进程 进程是指在系统中正在运行的一个应用程序 每个进程之间是独立的,每个进程均运行在其专用且受保护的内存空间内. 比如同时打开QQ.Xcode,系统就会分别启动2个进程. 通过“活动监视器”可以查看Mac系统中所开启的进程. 2:什么是线程 1个进程要想执行任务,必须得有线程(每1个进程至少要有1条线程——主线程). 线程是进程的基本执行单元,一个进程(程序)的所有任务都在线程中执行. 比如使用酷狗播放音乐.使用迅雷下载电影,都需要在线程中执行. 3…
1.#import和#include.@class有什么区别?#import<>和#import“”又有什么区别? 答:1.#import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次: 2.@class仅仅是声明一个类名,并不会包含类的完整声明:@class还能解决循环包含的问题: 3.#import<>用来包含系统自带的文件,#import“”用来包含自定义的文件. 2.属性readwrite.readonly.assign.retai…
AJ分享,必须精品 效果: 代码: - (NSArray *)apps { if (!_apps) { NSArray *dictArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"apps.plist" ofType:nil]]; NSMutableArray *appArray = [NSMutableArray array]; for (NSDictionary *di…
AJ分享,必须精品 一:队列的类型与队列添加任务 1: 主队列 [NSOperationQueue mainQueue] 添加到”主队列”中的操作,都会放到主线程中执行. 2:非主队列 [[NSOperationQueue alloc] init] 添加到”非主队列”中的操作,都会放到子线程中执行. 3:队列添加任务 (void)addOperation:(NSOperation *)op; (void)addOperationWithBlock:(void (^)(void))block; 二…
AJ分享,必须精品 一:简单介绍 1:NSOperation的作⽤使用步骤: 配合使用NSOperation和NSOperationQueue也能实现多线程编程. NSOperation和NSOperationQueue实现多线程的具体步骤: (1)先将需要执行的操作封装到一个NSOperation对象中(子类实例). NSOperationQueue的作用: NSOperation可以调用start方法来执行任务,但默认是同步执行的如果将NSOperation添加到NSOperationQue…
AJ分享,必须精品 GCD简单介绍 1.什么是GCD? 全称是Grand Central Dispatch,可译为“牛逼的中枢调度器” 纯C语言,提供了非常多强大的函数 2.GCD的优势 GCD是苹果公司为多核的并行运算提出的解决方案 GCD会自动利用更多的CPU内核(比如双核.四核) GCD会自动管理线程的生命周期(创建线程.调度任务.销毁线程) 程序员只需要告诉GCD想要执行什么任务,不需要编写任何线程管理代码 3.提示 (1)GCD存在于libdispatch.dylib这个库中,这个调度…
1. #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1> #import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次 2> @class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题 3> #import <> 用来包含系统自带的文件,#import “”用来包含自定义的文件 2. 属性readwrite,re…