A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 红凉梦 中级黑马   /  2016-2-25 19:27  /  2994 人查看  /  21 人回复  /   4 人收藏 转载请遵从CC协议 禁止商业使用本文

  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. */


复制代码

21 个回复

倒序浏览
这是老师问你的?
回复 使用道具 举报
嗯嗯 ,写的都是基础,
回复 使用道具 举报
调整心态,加油!
回复 使用道具 举报
收藏了多谢
回复 使用道具 举报
真厉害啊     赞一个
回复 使用道具 举报
感谢楼主分享
回复 使用道具 举报
收藏了!!!
回复 使用道具 举报
收藏了,以后看看
回复 使用道具 举报
收藏了 留着以后有用
回复 使用道具 举报
楼主  面试没有写代码吗
回复 使用道具 举报
干货分享, 先mark下来
回复 使用道具 举报
学习学习!
回复 使用道具 举报
吴振伟 来自手机 中级黑马 2016-3-1 23:08:46
14#
6666666666666666
回复 使用道具 举报
面试全是概念吗
回复 使用道具 举报
楼主现在写的都是正确答案么
回复 使用道具 举报
赞一个!
回复 使用道具 举报
dx206 来自手机 中级黑马 2016-3-8 13:41:49
18#
收藏了。加油!
回复 使用道具 举报
好东西,先收藏了。
回复 使用道具 举报
好帖 赞一个!!
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 加入黑马