笔试集锦

1.响应者链是什么?

所有继承自UIResponder的类都是一个响应者,它们可以对系统产生的事件,如点击屏幕做出响应。UIView和UIControl都是UIResponder的派生类,所以它们都可以是响应者。同一个项目中的所有响应者,按着一定的顺序来处理接收到的消息,如果前面的响应者做了响应,则后面的响应者不再接收到事件;如果前面的没做出响应,则后面的响应者会接收到事件,并决定是否做出响应。这种处理事件的响应顺序,就叫做响应者链。


2.static 关键字的作用?

(1)函数体内 static 变量的作用范围为该函数体,不同于 auto 变量,该变量的内存只被分配一次,
因此其值在下次调用时仍维持上次的值;

(2)在模块内的 static 全局变量可以被模块内所用函数访问,但不能被模块外其它函数访问; 


(3)在模块内的 static 函数只可被这一模块内的其它函数调用,这个函数的使用范围被限制在声明
它的模块内; 


(4)在类中的 static 成员变量属于整个类所拥有,对类的所有对象只有一份拷贝; 
(5)在类中的 static 成员函数属于整个类所拥有,这个函数不接收 this 指针,因而只能访问类的static 成员变量。


3.extern "C" 的作用

(1)被 extern "C"限定的函数或变量是 extern 类型的;

       extern 是 C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,
其声明的函数和变量可以在本模块或 其它模块中使用。

(2)被 extern "C"修饰的变量和函数是按照 C 语言方式编译和连接的


4.程序在内存中运行时,内存分几个区?各自用途?

栈区 由编译器自动分配释放存放函数的参数值,局部变量的值等。在高级语言中不需要显式的分配和释放

堆区 一般由程序员手动分配释放,如果不释放可有由OS释放。

数据区 存储全局和静态变量。初始化的全局和静态变量在一块区域,未初始化的放在相邻的一块区域,程序结束后由系统释放。

 

代码区 存放函数体的二进制代码。


5.引用与指针有什么区别? 

引用是给变量起一个别名 也就是一个变量有两个名字 他们是同一块空间

指针是分配一块内存用来保存变量的地址 间接引用变量


6.什么时候用delegate,什么时候用Notification

delegate针对one-to-one关系,并且reciever可以返回值给sendernotification可以针对one-to-one/many/none,reciever无法返回值给sender.所以,delegate用于sender希望接受到 reciever的某个功能反馈值,notification用于通知多个object某个事件。


7.层和UIView的区别是什么?

两者最大的区别是,图层不会直接渲染到屏幕上,UIView是iOS系统中界面元素的基础,所有的界面元素都是继承自它。它本身完全是由CoreAnimation来实现的。它真正的绘图部分,是由一个CALayer类来管理。UIView本身更像是一个CALayer的管理器。一个UIView上可以有n个CALayer,每个layer显示一种东西,增强UIView的展现能力。


8.HTTP协议的主要特点可概括?

1.支持客户/服务器模式。

2.简单快速(:客户向服务器请求服务时,只需传送请求方法和路径。请求方法常用的有GET、HEAD、POST。每种方法规定了客户与服务器联系的类型不同。由于HTTP协议简单,使得HTTP服务器的程序规模小,因而通信速度很快。)

3.灵活(:HTTP允许传输任意类型的数据对象。正在传输的类型由Content-Type加以标记。)

4.无连接:(无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接。采用这种方式可以节省传输时间。)

5.无状态:(HTTP协议是无状态协议。无状态是指协议对于事务处理没有记忆能力。缺少状态意味着如果后续处理需要前面的信息,则它必须重传,这样可能导致每次连接传送的数据量增大。另一方面,在服务器不需要先前信息时它的应答就较快。)

 

9.死锁的4个必要条件

互斥、请求保持、不可剥夺、环路


10.堆栈溢出的原因

① 没有回收垃圾资源,存储空间垃圾太多,内存已满

 

② 层次太深的递归调用,重复调用自己导致内存不足

 

③ 动态申请的内存忘记释放,几new 和 delete

 

11.死锁的处理

鸵鸟策略、预防策略、避免策略、检测与解除死锁


微笑



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值