面试笔试精华(二)java
警告:必定要把英文题目过一遍,有些公司的题目故意弄成英文的!!!面试
浅复制和深复制的区别?服务器
1> 浅拷贝:指针(地址)拷贝,不会产生新对象网络
2> 深拷贝:内容拷贝,会产生新对象异步
类别的做用?继承和类别在实现中有何区别?this
1> 分类能够在不修改原来类模型的基础上拓充方法编码
2> 分类只能扩充方法、不能扩充成员变量;继承能够扩充方法和成员变量代理
3> 继承会产生新的类指针
类别和类扩展的区别?对象
1> 分类是有名称的,类扩展没有名称
2> 分类只能扩充方法、不能扩充成员变量;类扩展能够扩充方法和成员变量
3> 类扩展通常就写在.m文件中,用来扩充私有的方法和成员变量(属性)
oc中的协议和java中的接口概念有何不一样?
1> Java的接口中声明的方法必须都实现
2> Oc的protocol中声明的方法并不必定要实现
1> KVC是键值编码,能够经过一个字符串的key(属性名)修改对象的属性值
2> KVO是键值监听,能够监听一个对象属性值的改变
代理的做用?
1> 两个对象之间传递数据和消息
2> 解耦,拆分业务逻辑
oc中可修改和不能够修改类型?
1> mutable是可变类型,好比NSMutableArray,能够动态往里面添加元素
2> immutable是不可变类型,好比NSArray,固定的存储空间,不能添加元素
咱们说的oc是动态运行时语言是什么意思?
1> 动态绑定:对象类型在运行时才真正肯定
2> 多态性
通知和协议的不一样之处
1> 经过NSNotification能够给多个对象传递数据和消息
2> 经过protocol(代理模式)只能给一个对象传递数据和消息
什么是推送消息?
1> 本地推送:程序内部弹出通知到用户设备
2> 远程推送:由推送服务器推送通知到用户设备
关于多态性?
多态:父类指针指向子类对象
对于单例的理解
单例:保证程序运行过程当中,永远只有一个对象实例
目的是:全局共享一份资源、节省没必要要的内存开销
响应者链:
l UIResponder有一个nextResponder属性,经过该属性能够组成一个响应者链,事件或消息在其路径上进行传递
l 若是UIResponder没有处理传给它的事件,会将未处理的消息转发给本身的nextResponder
frame和bounds有什么不一样?
1> frame以父控件的左上角为坐标原点
2> bounds以控件自己的左上角为坐标原点
方法和选择器有何不一样?
经过一个selector能够找到方法地址,进而调用一个方法
补充:selector是一个方法的名字,method是一个组合体,包含了名字和实现.
OC的垃圾回收机制?
1> OC 1.0没有垃圾回收
2> OC 2.0有垃圾回收,只能用在Mac上
3> iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性
1> 用来存放NSOperation对象的队列,能够用来异步执行一些操做
2> 通常能够用在网络请求等耗时操做
延迟加载:好比控制器的view,在第一次用到view时才会调用loadView方法进行建立
是否在一个视图控制器中嵌入两个tableview控制器?
从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的
一个tableView是否能够关联两个不一样的数据源?你会怎么处理?
从对象属性上分析,tableView只有一个dataSource属性。固然,真要使用2个不一样的数据源,仍是有其余办法解决的