ios那些事 面试中常见的一些题

来源:互联网 发布:linux运维工程师招聘 编辑:程序博客网 时间:2024/04/29 05:10
找工作已经1个多月了,可以依然没有找到合适的工作,经过一个月的惨痛面试经历,我感触颇多。
        面试第一周
        感受:不要太老实,老实的人很吃亏!
        在第一周,我面试了4家公司,都是一些非ios开发公司,他们招聘ios只是为了给公司搭建一个ios平台,部门也是刚刚成立的,所以,他们想招聘的是有经验的人,一般都是需要一年以上的工作经验。而我是以应届生的身份去面试的,因为我不想说谎,不想欺骗公司,本着一颗诚实的心去面试,却没想到到处碰壁。人家一听说我还没有毕业,觉得我不够沉稳,没经验,就根本不想跟我谈了,再加上公司本身没有ios技术人员,不知道我技术到底怎么样,他们可能是不愿意冒风险,所以根本没给我工作的机会。这些当然不是公司直接跟我说的,而是经过4家面试之后没有收到offer后自己总结出来的。
        
        面试第二周
        感受1:面试一定要做好充足的准备
        之前都是没有技术人员跟我面试,对于技术我就没怎么在意,没想到到了这周吃亏了。这一周我接触的公司差不多都是一些真正搞软件开发的公司,他们的面试程序差不多都是先笔试,再面试,只有笔试过了,你才有机会进入复试(面试)。当时我忽略了这一点,我每天想着怎么样才能把自己伪装成一个已经毕业,已经有一年工作经验的人,没想到,这一周全都是专业的软件开发公司,由于我没有做好技术上的准备,有些笔试题和面试题不会,比如面试官问:“你给我讲讲OC中有哪些事件点”,“用操作系统的知识讲讲同步和异步”,再加上一些其他原因,最终还是止步于这道程序上。(经过多次面试和笔试之后,我汇总了一些题目,在文章最后贴出来)
        感受2:笔,不能丢
        专业的软件公司都是先笔试后面试,所以,平时一定要动手写写字,不然写字有些生疏了,然后马上就有家公司叫你去笔试,那时就惨了。我清晰地记得我的第一次笔试,我写字时手都涩涩的发抖,写一行代码后,发现前面漏了东西还没有写,于是又在旁边补上,然后打个箭头,写着写着时不时写错了,然后涂个黑坨坨,整个试卷难看死了。
        感受3:简历投递的时间要巧
        这周招聘ios开发人员的公司好多,可是我的面试机会却不多,我没想通这到底是为什么,后来有人跟我说了,投简历要选好时间,你要在他们上班前一段时间投递,像每周周一的8点到9点投递是最好的,因为公司通常都是8点半或者9点上班,hr查看简历的时候肯定是先看最新的简历,而不是接着上个星期的简历开始看,所以,选择好简历的投递时间是一个非常重要的技巧和手段。

        面试第三周
        感受:招聘ios开人员的公司少了,ios应聘者多了,竞争激烈。
        这周,招聘网站上发布ios招聘信息的公司相对于上两个星期来说变了,而ios应聘者增多了,据我了解,这周千锋培训机构有一大批学员开始找工作,我表示压力山大。果然不出我所料,我的面试机会很少,通过千锋那边的同学了解,他们也面试很少,而且同一家公司,我们系的人好多都收到了邀请,而他们的简历模版一模一样,只是内容不同,所以公司看了几个,觉得不合适,接着后面的应聘者也就没什么希望。而在网上也是一样,好多公司看了应聘者的简历,同样的学校,同样的专业,简历是同一个模板,司看了看觉得不合适,于是整个XX学院的应聘者都被公司屏蔽了,整个学院的应聘者都没有机会面试。

        面试第四周
        感受1:不要迟到
        这周有一次面试,是神舟科技,那天我肚子有点不适,人有三急,我实在憋不住了,于是先去了一下洗手间,就在1:59的时候我进去(面试是在2:00),结果技术总监和行政主管也是这个时候进来,他们先一步,我后一步,时间也就相差1秒,我以为没事,没想到后来就是这个原因才让我没有机会进这家企业。我没有机会辩解,因为公司就是公司,他们不需要告诉你怎么自己没有聘用上(我是通过聘上的同学说的,谈工资的时候我同学顺便问了一下,结果行政主管说了一句:“那个人没有礼貌,他迟到了!”,我同学替我说了话,说我闹肚子,主管认为是编理由解释,就不怎么想谈这个,于是转向其他话题去了)。
        经历了一次就当教训吧!

        感受2:做人别太假,还是老实点好
        这点与我之前的感受截然相反,我甚至都感觉到精神崩溃。这一周长j沙有一家公司招聘我,我给出的简历是去年毕业的,工作经验有一年了,而真实的我是今年毕业,没有工作经验。我以为这样就可以获得一份工作,貌似这一招很管用,但是最终得不偿失。经过人事的面试和技术经理的面试,我都过了,公司叫我过去,但是我心里慌得很,虽然两道程序我都过了,但是我不敢过去,因为我没有毕业证,没有工作经验,而且4月低我要回学校开题,5月分答辩,中间夹着五一,我根本就没有机会请假,也找不到理由。更加难的一道坎就是:我没有毕业证,我根本就入不了职,就算我找各种接口隐瞒,但是真正参加工作,万一人家发现了,还不得把我轰出来,到时候白干多久都不知道,更严重的是我会颜面扫地。后来人事那边又催了,问我买票了没,什么时候回长沙,而我一拖再拖,而在催我的时候总是会问一个问题:“你哪一年毕业的?”,我实在忍不住了,就跟他坦白了,因为我好累,说谎真的很累,因为说了谎,就需要跟多的谎言去圆谎。虽然他不觉得意外,他说很是理解我们应届生的处境,跟我聊了好久的天,意思也是很明确,就是要我过去,想用我这个廉价的劳动力,而我肯定是不会过去的,主要是我不好意思去,我无法面对公司的员工,另外就是他们开的工资太低了,70块钱一天,一个月也就1500块,这点我是接受不了的,毕竟我这边欠了一屁股债,1500一个月,我无法还债(债务就要每月还1500),生活无法持续下去。
        最后,说一句,不要作假,就算电子简历作假,面试的时候也要如实澄清(要解释网上造假只是为了获得面试机会),造假付出的代价很大,会很累,不是身体上的累,而是心累。并且,造假一旦被穿帮,今后也无法在同事面前抬得起头,造假,得不偿失。 

        面试第五周
       感受:面试官永远都是对的
       有句话或许大家都听说过:“顾客永远是对的”,而今天我可以说一句:“面试官永远是对的”。
       可能你会问为什么,下面我就说说我的惨痛经历。
       前天我面试了一家公司,在面试过程中,有个技术问题我们有了分歧,他(主面试官)问:“我现在有很多个对象,比如10个对象(都是同一类的实例),你怎么把数据存到文件中?”
    我:“类遵循NSCoding协议,实现归档解档的方法,然后把对象放到数组中,然后把数组写进文件就行了”
    主面试官:“不用对数组做什么操作吗?”
    我:“不用啊,NSArray是遵循了NSCoding协议的,也实现了归档和解档的方法,可以直接写”
    主面试官:“不行,数组是写不进去的”
    我:“可以啊,我曾经在一个项目中试过,是可以的,字典也是一样,是可以直接写进文件的,因为他们本身已经实现了归档和解档方法!”
主面试官:“不行,我曾经也做过实验,写不进去,会报错”
我坚持自己的观点:”不是吧,难道我记错了?“
主面试官:“你可以回去试试” 
......

经过一段时间, 最后我说:“可能我记错了”
......

到谈工资的时候,他说我这个人有点傲(其实我这个人挺好相处的,也挺好管的),我以为那只是一个学术的,技术上的讨论,我没怎么注意面试官的感受,却没想到面试官心里可能不爽,不舒服,所以后来他说他不想要我这个人,尽管技术学的还行,但是有点傲。在谈到工资方面,我说5k,面试官二话没说,转正后没问题,问我实习工资,我说4000(我在想:转正后5k他二话没说就答应了,估计是觉得我还行,于是就开的高一些),没想到,他说最多给我2500,由于试用期开的工资比我预期的低很多,我说回来后考虑考虑,前天回来,昨天晚上回复他说决定去他们公司,然而他说了一句:“我们公司今天已经招到人了”。他说招到人了,我也认了,这没什么好说的,然而我今天早上上智联招聘网站投简历时,那一家公司今天依然发布了招聘信息,招聘的就是ios开发人员,我没有看错,然后我就在想,那是场我认为的“讨论”让他心里很不舒服,他认为我这个人有点傲,我琢磨着他可能觉得我这个人不好管理,怕压不住我。
尽管讨论的问题我回宿舍后得到了验证,事实证明我的观点是对的,但是我还是打了一个电话给他,跟他道歉,看能不能给个机会。结果他没有拒绝,也没有答应,只是说了一句:“我考虑考虑”,真希望能给我一次机会。人在屋檐下不得不低头,唉,生活很是无奈......

    经过这件事情,我得出一个结论:“
不要跟面试官去争论,面试官永远是对的!” 


         经过这么多次,
这么久的面试,我感受到了很多,觉悟到了很多,也学到了很多,而这些都不是技术方面,而是为人处事方面。总之做人不要太老实,也不要太假,要懂得圆滑,因为这就是社会!

        上面只是说了经历中的一部分, 还有其他的经历和感受,比如,英语的重要性啊(有一家公司笔试题全英文的),我也就不说了,只有亲身经历了这些自己才有感觉。好了,就写到这里,回头我还要去投简历,去寻找我的饭碗,不知道日后的面试还会经历什么事情,我只能说北漂的生活真的有点小坎坷,其他我也不想说什么了,人生还有很长的路等着我去走,去经历,最后,为自己祈祷一下,希望尽快找到工作,come on!
        





        下面把我遇到的一些笔试题和面试题贴一下:

1、说说OC内存管理;

2ASIRequest是什么;

3、怎么输出json字符串;

4、说说http头部有哪些内容;

5、说说OC生命周期;

6、运用第三方框架,到时候出了问题,谁来负责

7、自己写一个strcpy函数

8、字母统计(如,输入字符串“aabbbccddddaaaaa”,输出“2a3b2c4d5a)

9、你用过哪些框架

10、进程与线程的区别

11、开辟线程的方式有哪些

12、实现进程同步的方式有哪些,或者说你怎么实现进程同步

13、请你谈谈同步和异步,用操作系统知识解释一下。

14、请你谈谈多态

15、怎么将数据写入文件(归档,解当)

16、写一个set方法(retaincopy权限)

17

Int* fun()

{

   Int a=5;

   Int * p=&a;

   Return p;

}

请问:在主函数里面调用fun函数,这样可以吗?如果不可以,请说明为什么,并给出一种解决方案。

 

18、在颜色中,有GB8888 GB565标准,前者32位,其中R8位,G8位,B8位,透明度占8位,后者16位,其中,R5位,G6位,B5位。现在要将一个GB8888类型颜色转换成GB565类型,怎么转

 

19、判断一个数是否为素数

 

20、优化代码

   1int a=b*4;

   2int a=b/8;

   3int a=b%1;

   4int a=b%16;

   5int a=(b*3)/8;

 

21、什么是内联函数?

22assign,retain,copy的区别

23、面向对象的特性

24、实现一个view从顶部移到底部的动画

25#ff3344转换成uicolor

26、判断一个链表是否有循环

27、写一个代理类

28、进程之间是怎么通信的

29oc有哪些优点和缺点

30、什么时候用delegate,什么时候用Notification?

http://blog.csdn.net/dqjyong/article/details/7685933


31、写一个"标准"MIN ,这个宏输入两个参数并返回较小的一个。当你写下面的代码时会发生什么事?  
least = MIN(*p++, b);

    unsigned int  p  = 1;
    unsigned int  b =  3;
    int least = MIN(p++, b);
    NSLog(@"least :  %d",least); 2

 

32MVC模式的理解

33、堆和栈的区别

1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表

  堆和栈的区别可以用如下的比喻来看出:   
  使用栈就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就 
  走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自 
  由度小。   
  使用堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由 
  度大。

34、自动释放池是什么,如何工作

35、写一个委托的interface


@protocol MyDelegate;

@interface MyClass: NSObject
{
id <MyDelegate> delegate;
}

// 委托方法
@protocol MyDelegate
- (void)didJobs:(NSArray *)args;
@end



36objective-c的内存管理

37、什么是Notification

38、下面的声明都是什么意思?

constint a;

intconst a;

constint *a;

int* const a;

intconst * a const;


转自:http://user.qzone.qq.com/6393974/infocenter#!app=2&via=QZ.HashRefresh&pos=1364463114


附加:http://www.cnblogs.com/duchengdong/archive/2012/03/30/2425300.html

      http://blog.csdn.net/edward0004/article/details/7214730

      http://blog.csdn.net/itianyi/article/details/8821729