iOS初级工程师OC面试题

本文详细介绍了iOS开发中Objective-C的基本特点,包括OC与Java的单继承区别、id类型、switch语句的使用以及与if语句的比较。还探讨了内存管理、协议、分类、内存管理原则、深浅复制、堆栈区别等关键概念,并通过面试题形式讲解了retain count、ARC技术、拷贝实现、属性修饰符、KVC与KVO、自动释放池等知识点,帮助iOS初级工程师准备面试。
摘要由CSDN通过智能技术生成

1、OC语言的基本特点

(1)OC语言是C语言的一个超集,只有在C的基础上加上了面向对象的特点;

(2)OC与Java语言相同都是单继承,这一点与C++语言不同,C++语言是多继承;

(3)OC不支持命名空间机制,取而代之的是在类名之前添加前缀。

2、解释id类型

(1)OC的数据类型可以分为基本数据类型、对象类型和id类型;

(2)id可以指向任意OC对象类型,程序运行时才决定对象的类型。

3、switch语句每一句case都需要添加break语句吗?

switch语句中的break语句不是必须的,此外,default语句也不是必须添加的,如果在某一个条件case语句之后添加break语句,即当条件满足时,跳出switch语句。

4、switch语句和if语句区别与联系以及它的优势在哪里?

  都表示条件的判断,switch语句表达式只能处理整型,字符型和枚举型,if语句没有这样的限制。但是switch语句比if语句(选择流程控制语句)效率更高。

5、break和continue的区别?

  (1)break是结束整个循环体;

  (2)continue是结束本次循环。

  (3)break之后不再循环,continue结束本次循环后,再开始下一次的循环。

  (4)continue语句只是结束本次的循环,而不是终止整个的执行,接着进行下一次是否执行循环的判定。 
  (5)而break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。
6、do while语句和while语句的区别,并写出几个死循环。
  (1)do while语句至少执行一次循环体,而while语句括号中表达式为真,才执行循环体。
  (2)while(1){}、for(;;)、for(int i=0;;i++)
7、int number = 26 , k = 1 , 求k的值
  do{
 
      k*=number%10;
      number/= 10;
}while(number);

  do while 语句的特点是循环体至少执行一次。程序执行到表达式 k*=number%10,已知number 为 26,又已知算术运算符比赋值运算符好优先级别高,因此先计算 number%10,其结果为 6 ;已知 k 为 1,因此 k 的结果为 6。number/=10 ,number 的值2。while 语句判断表达式是否为真,此时 number 为 2。继续执行循环体,此时 number、k 的值分别为 2、6,2%10 的结果仍为 2 ,再与 k 相乘,其 k 的结果为 12。程序执行到循环体第二行 number/10,此 时 number 已为 10,因此,number 的结果为 0。while 表达式内条件为假,循 环就此结束

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值