美文网首页
面试题总结(一)

面试题总结(一)

作者: Lizzzzzzhen | 来源:发表于2016-07-23 17:15 被阅读13次

最近看了一些面试的题, 发现这里面真的有好多自己没接触过的东西, 自己做了笔记顺便和大家分享一下:

本文将持续更新

1. Objective-C所有对象间的交互是如何实现的?

主要有两种角色: 数据发送者数据接收者.

正向传递:直接拿到接收者的指针.

反向传递:

  • 委托模式:观察者模式(本质是单例)
  • Block语法, APPDelegate来实现

1.委托模式, Block语法 1 对 1
2.观察者模式:1 对 多

2. 什么是数据结构?

计算机存储, 组织数据的方式, 相互之间存在一种或多种特定关系的数据元素的集合.

3. #import" "#include" "的区别, @class的意思, #import<>#import" "的区别.

#importObjective-C 导入头文件的关键字
#includeC/C++导入头文件的关键字

@class 告诉编译器某个类的声明, 执行时才查看类的实现文件, 可以解决头文件的相互包含.

#import<> 引入的是系统库文件 (使用CocoaPods导入的三方库也是需要使用这种引入方式)
#import" " 引入的是用户自己定义的头文件

4. 对于语句NSString *str = [[NSData alloc] init], str在编译时和运行时分别是什么类型?

编译时: NSString 类型
运行时: NSData 类型

5. 常见 OC 数据类型有哪些? 和 c 区别?

Objective-C: NSString, NSInteger, NSArray, NSData...
C : 基本数据类型int

6. id 声明对象有什么特性

  • 可以指向任意类型Objective-C对象
  • 可以作为返回值, 也可以声明对象

返回值使用 instancetypeid的区别

  • instancetype只能作为返回值
  • id可以声明对象, 也可以作为返回值

7.

@property NSString *sex; //属性
属性拥有settergetter 方法, 外加 _sex 成员变量

8. 深拷贝与浅拷贝的区别:(面试几乎必考的笔试题)

浅拷贝: 只复制指向对象的指针, 而不复制引用对象本身
深拷贝: 复制引用和对象本身

用网上一流行的小哥说的话:
浅拷贝: 你和你的影子, 你完蛋了, 你的影子也完蛋了.
深拷贝: 你和你的克隆人, 你完蛋了, 你的克隆人还好好的或者.

9. nil null Nil 区别:

nil 指向OC对象
Nil 指向OC 的类
null 一般在C语言中使用

10. 线程和进程的区别?

  1. 一个应用程序对应一个进程,一个进程帮助程序占据一块存储空间

  2. 要想在进程中执行任务,就必须开启线程,一条线程就代表一个任务

  3. 一个进程中允许开启多条线程,也就是同时执行多个任务

今天就暂时写这么多, 本文全是小编一个一个字敲出来的, 后续还会继续更新, 希望本文能对大家起到帮助 !!!

相关文章

网友评论

      本文标题:面试题总结(一)

      本文链接:https://www.haomeiwen.com/subject/xrrwjttx.html