黑马程序员技术交流社区

标题: 面试总结 [打印本页]

作者: 红凉梦    时间: 2016-2-25 19:27
标题: 面试总结
  1. /*
  2. 1.NSLog和Printf的区别
  3.    1)NSLog可以自动换行,输出调试信息,printf不能
  4.    2)NSLog函数的参数是一个NSString的对象
  5.    3)printf函数的参数是一个字符串常量指针
  6. 2.#import 和 #include的区别
  7.    1)import可以防止头文件的重复包含,include不能
  8.    2)include是使用预处理指令来防止头文件的重复包含
  9.    #ifndef C7________xxx_h
  10.    #define C7________xxx_h
  11. 3.new的三件事
  12.     1)向计算机(堆区)申请内存空间;
  13.     2)给实例变量初始化;
  14.     3)返回所申请空间的首地址;

  15. 4.实例变量的修饰符 作用范围
  16.     @puplic (公开的) 作用于当前类
  17.     @protected  (受保护的) 作用于当前类,子类(派生类)
  18.     @private (私有的)作用于当前类
  19.     @package (框架级别的)  作用于框架级别的
  20. 5.C和OC static的区别
  21.    在C语言中 static可以修饰
  22.    1)局部变量(延长局部变量的周期)
  23.    2)全局变量(当前变量只能在本文件中访问)
  24.    3)函数(当前函数只能在本文件中访问)
  25. 在OC中 static不能修饰方法 但是可以修饰全局变量和局部变量
  26. 6.@proprety增强做的三件事
  27.    1)在.h文件中帮我们自动生成get和set方法声明
  28.    2)在.m文件中帮我们生成私有的实例变量(前提是没有在.h文件中没有手动生成)
  29.    3)在.m文件中帮我们是实现get和set方法的
  30.    注意:
  31.    在使用@property情况下,可以重写getter和setter方法.需要注意的是,当把setter和getter方法都实现了之后,实例变量也需要手动去写.

  32. 7.NSObject和id的区别
  33.    1)NSObject和id都可以指向任何对象
  34.    2)NSObject对象会在编译时进行检查,需要强制类型转换
  35.    3)id类型不需要编译时检查,不需要强制类型转换
  36. 8.instancetype和id的区别
  37.    相同点:都可以作为返回值的类型
  38.    不同点:
  39.      1)instancetype可以返回和方法所在类相同类型的对象,id只能返回未知的对象
  40.      2)instancetype只能作为返回值,不能像id那样作为参数
  41. 9.nil , Nil ,NULL和NSNULL的区别
  42.    nil  是一个对象值;如果我们要把一个对象设置为空的时候,就用nil
  43.    Nil  是一个类对象的值,如果我们要把一个class的对象设置为空的时候,就用Nil
  44.    NULL 是一个通用指针
  45.    NSNull 是一个对象,它用在不能使用nil的场合

  46. 10.面向对象设计三个主要特征:
  47. 封装,继承,多态
  48. 封装的好处:
  49. 将变化隔离。(不管里面怎么变,使用者不需要知道)
  50. 便于使用。(使用者只需按照一定的方法使用就可以了)
  51. 提高重用性。(任何人都可以对已封装好的功能进行操作)
  52. 提高安全性。(由于暴露给使用者的只是一些外在的操作环节,而不是里面本质的东西,所以就提高了对他的维护性,也就是安全性)

  53.   继承  子类拥有了父类的所有属性和方法
  54.   多态  父类的指针指向了子类的对象(如果存在多态,父类就可以访问子类的特有方法;如果不存在多态,父类就不可以访问子类的特有方法)
  55. 11.内存分为5大区域
  56. 栈区 -- 存放局部变量,临时变量
  57. 堆区 -- 程序运行过程中,动态分配的内存
  58. BSS区 -- 未初始化的全局变量和静态变量
  59. 数据段 -- 已经初始化的全局变量和静态变量
  60. 代码段 -- 程序编译产生的二进制的数据
  61. 12.@proprety参数
  62.   1)原子性:atmoic(原子性)noatmoic(非原子性)
  63.   2)读写属性:readwrite和readonly
  64.   3)set方法的处理:assign(修饰基本数据类型)retain(用来修饰OC对象)copy
  65.   以上是MRC的情况下  ARC的情况下多两个(strong(强指针)weak(弱指针))
  66. 13.import和@class的区别:(面试题)
  67. 作用上的区别:#import会包含引用类的所有信息(内容),包括引用类的变量和方法;
  68.              @class仅仅是告诉编译器有这么一个类,具体这个类里有什么信息,完全不知。

  69. 效率上的区别:#import编译效率会非常低,@class就不会出现这种情况。
  70. 14.关键字的命名规则
  71.    1.只能由字母,数字,下划线或者美元符号组成
  72.    2.不能以数字开头
  73.    3.不能和关键字重名
  74.    4.严格区分大小写
  75. 15.结构体与数组有什么区别?
  76. 1.结构体可以存不同类型的元素,而数组只能存同一类型
  77. 2.结构体类型需要我们自已定义.数组是用别的类型加[元素个数]
  78. 3.结构体内存分配方式很特别,使用对齐原则,不一定是所有元素的字节数和,而数组一定是所有元素的字节数和.
  79. 4.结构体指针可以指针名->结构体元素名(取元素);数组不行.





  80. */


复制代码

作者: zzt244    时间: 2016-2-26 01:06
这是老师问你的?
作者: Omess    时间: 2016-2-26 08:12
嗯嗯 ,写的都是基础,
作者: wangpeng1    时间: 2016-2-26 12:26
调整心态,加油!
作者: 斑斑1111    时间: 2016-2-26 15:41
收藏了多谢
作者: 米阳    时间: 2016-2-28 18:40
真厉害啊     赞一个
作者: Truth_10    时间: 2016-2-28 21:52
感谢楼主分享
作者: zhangxiansheng    时间: 2016-2-29 09:49
收藏了!!!
作者: 梁川楠    时间: 2016-2-29 11:01
收藏了,以后看看
作者: yzasd1    时间: 2016-2-29 14:24
收藏了 留着以后有用
作者: Fly不忘初心    时间: 2016-2-29 17:56
楼主  面试没有写代码吗
作者: 从心开始のBean    时间: 2016-2-29 21:23
干货分享, 先mark下来
作者: chensc    时间: 2016-3-1 21:06
学习学习!
作者: 吴振伟    时间: 2016-3-1 23:08
6666666666666666
作者: zhuzhibo    时间: 2016-3-7 00:17
面试全是概念吗
作者: MuziTian    时间: 2016-3-7 15:40
楼主现在写的都是正确答案么
作者: agaoyin    时间: 2016-3-8 13:38
赞一个!
作者: dx206    时间: 2016-3-8 13:41
收藏了。加油!
作者: 简单的爱    时间: 2016-3-8 15:37
好东西,先收藏了。
作者: Bin-    时间: 2016-3-8 18:02
好帖 赞一个!!
作者: 信念的旗帜    时间: 2016-3-8 19:37
还在基础班学c语言中,基本都看不懂=.=
作者: 978677855    时间: 2016-3-8 21:04
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2