码迷,mamicode.com
首页 > 移动开发 > 详细

IOS试题收集1

时间:2014-12-08 10:37:08      阅读:227      评论:0      收藏:0      [点我收藏+]

标签:style   io   ar   os   使用   sp   on   文件   数据   

IOS试题收集1

 

1、Objective C中有多继承吗?没有的话用什么代替?

Protocol

2、Objective C中有私有方法吗?私有变量呢?  

OC类里面只有静态方法和实例方法这两种,@private可以用来修饰私有变量,所有实例方法默认都是公有的,如果想要可以达到私有效果的方法可以不把方法的声明放在@interface...@end

3、关键字const的含义是什么?

const int a;

int const a;

coust int *a;

int *const a;

int const *a const;

解释:前两个一样,都为整形常量;第三个为指针指向不变的整形常量,即指针可变,整形常量不可变;第四个为指向可变的整形变量的常量指针,即整形变量可变,指针不会变;第五个为常指针指向整形常量;

4、关键字volatile的含义是什么?

5、关键字static

C++和Objective C中的static

4、#import和#include的区别,@class代表什么?

#import不会引起重复包含

5、线程和进程的区别

进程和线程都是由操作系统所体会的程序运行的基本 单元,系统利用该基本单元实现系统对应用的并发性。 进程和线程的主要差别在于它们是不同的操作系统资 源管理方式。进程有独立的地址空间,一个进程崩溃 后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉,所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程

6、堆和栈的区别

管理方式:对于栈来讲,是由编译器自动管理,无需 我们手工控制;对于堆来说,释放工作由程序员控制, 容易产生memory leak。

申请大小: 栈:在Windows下,栈是向低地址扩展的数据结构,是 一块连续的内存的区域。这句话的意思是栈顶的地址 和栈的最大容量是系统预先规定好的,在WINDOWS 下,栈的大小是2M(也有的说是1M,总之是一个编 译时就确定的常数),如果申请的空间超过栈的剩余 空间时,将提示overflow。因此,能从栈获得的空间 较小。 堆:堆是向高地址扩展的数据结构,是不连续的内存 区域。这是由于系统是用链表来存储的空闲内存地址 的,自然是不连续的,而链表的遍历方向是由低地址向高地址。堆的大小受限于计算机系统中有效的虚拟 内存。由此可见,堆获得的空间比较灵活,也比较大。

碎片问题:对于堆来讲,频繁的new/delete势必会造 成内存空间的不连续,从而造成大量的碎片,使程序 效率降低。对于栈来讲,则不会存在这个问题,因为 栈是先进后出的队列,他们是如此的一一对应,以至 于永远都不可能有一个内存块从栈中间弹出

分配方式:堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。静态分配 是编译器完成的,比如局部变量的分配。动态分配由 alloca函数进行分配,但是栈的动态分配和堆是不同 的,他的动态分配是由编译器进行释放,无需我们手 工实现。 分配效率:栈是机器系统提供的数据结构,计算机会 在底层对栈提供支持:分配专门的寄存器存放栈的地 址,压栈出栈都有专门的指令执行,这就决定了栈的 效率比较高。堆则是C/C++函数库提供的,它的机制 是很复杂的。 

7、Objective C的内存管理机制

8、IOS有没有垃圾回收

9、UITableView的重用机制

10、ViewController的loadView、viewDidLoad、viewDidUnload分别什么时候调用的,在自定义ViewController时在几个函数中应该做什么工作?

11、怎么理解MVC,在Cocoa中MVC是怎么实现的? 

12、delegate和notification区别,分别在什么情况下使用?

13、KVC(Key-Value-Coding) KVO(Key-Value-Observing) 理解KVC与KVO(键-值-编码与键-值-监看) 

14、self.跟self什么区别?id、nil代表什么? 

15、Category和Protocol

16、iOS程序运行流程

1. 系统调用app的main函数
2. main函数调用UIApplicationMain.
3. UIApplicationMain创建shared application instance, UIApplication默认的instance.
4. UIApplicationMain读取Info.plist找到主nib文件, 加 载nib,把shared application instance 设为nib的 owner. 

 

 

 

 

 

IOS试题收集1

标签:style   io   ar   os   使用   sp   on   文件   数据   

原文地址:http://www.cnblogs.com/IOS-Developer/p/4150369.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!