關(guān)于面試機(jī)會(huì)
由于種種原因壁袄,4月中本人毅然離開了上一家公司,緊接著開始投入到所謂的“3金4銀”的就業(yè)求職黃金期中媚媒。
經(jīng)過自己一番篩選后嗜逻,前前后后四天總共面了10家左右。截止目前缭召,已定offer一個(gè)变泄,主動(dòng)拒絕一個(gè)。當(dāng)然恼琼,原本還有兩家也是很有希望拿offer的妨蛹,因?yàn)楸救瞬辉敢饨邮堋?106”的上班模式或拒絕提供薪資銀行流水,然后就沒有然后了晴竞。
就個(gè)人面試經(jīng)歷來看蛙卤,深圳iOS行業(yè)面試機(jī)會(huì)還是比較多的,其中還不乏有些公司主動(dòng)找上門的噩死。在技術(shù)面要求上颤难,不同規(guī)模的公司各有差異,大公司除了關(guān)注iOS基礎(chǔ)已维,也非常注重算法及數(shù)據(jù)結(jié)構(gòu)行嗤。
由于本人非計(jì)算機(jī)科班出身,每逢算法必輸……算法顯得尤為重要垛耳,只有發(fā)憤圖強(qiáng)了栅屏。
據(jù)個(gè)人面試經(jīng)歷及觀察,OC仍是iOS開發(fā)的主流堂鲜,基本上沒遇到明確使用Swift開發(fā)的項(xiàng)目栈雳。當(dāng)然個(gè)人還是比較看Swift的,正在Swift道路上努力中……
筆試缔莲、面試題
1. 算法題
- 請(qǐng)?jiān)?000萬個(gè)整型數(shù)據(jù)中以最快的速度找出其中最大的1000個(gè)數(shù)哥纫?
這是一個(gè)經(jīng)常被問到的問題,百度網(wǎng)上解法也很多痴奏。
這里僅提供基本思路蛀骇,供參考:把1000萬的整型平均分到合適n個(gè)文件中,分別對(duì)每一份文件找出前1000個(gè)最大的數(shù)读拆,最后對(duì)每份文件前1000數(shù)據(jù)用常規(guī)算法合并即可擅憔。
那么,如何從每一份文件中找出前1000個(gè)最大的數(shù)呢建椰?
先取文件中前1000個(gè)數(shù)放到數(shù)組中雕欺,并排好序(假設(shè)升序)岛马,之后從文件中讀取下一個(gè)數(shù)與數(shù)組第一個(gè)數(shù)比較棉姐,如果比數(shù)組中第一個(gè)數(shù)大屠列,則替換數(shù)組第一個(gè)數(shù),并重新排序伞矩,之后再取下一個(gè)數(shù)進(jìn)行下輪比較即可笛洛。
- 循環(huán)鏈表題:一個(gè)有序循的整形環(huán)鏈表斷開了,請(qǐng)插入一個(gè)整形數(shù)乃坤,使得鏈表仍然是有序的苛让。
2.OC題
Block中可以修改全局變量,全局靜態(tài)變量湿诊,局部靜態(tài)變量嗎狱杰?
答案,可以厅须。 原因請(qǐng)參考深入研究Block捕獲外部變量和__block實(shí)現(xiàn)原理代碼分析題,以下代碼輸出結(jié)果是什么仿畸?
@property (nonatomic, strong) NSString *strongString;
@property (nonatomic, weak) NSString *weakString;
strongString = [NSString stringWithFormat:@"%@",@"string1"];
weakString = strongString;
strongString = nil;
NSLog(@"%@", weakString);
答案: string1,原因:@"string1" 初始化 retainCount == 1朗和; strongString 指向@"string1"對(duì)象错沽, retainCount +1,strongString = nil眶拉, retainCount -1千埃,最后retainCount == 1,所以輸出是string1忆植。
- SDWebImage實(shí)現(xiàn)原理是什么放可? 它是如何解決tableView的復(fù)用時(shí)出現(xiàn)圖片錯(cuò)亂問題的呢?
答案:原理請(qǐng)參考SDWebImage總結(jié)朝刊,圖片下載真的很簡(jiǎn)單吴侦,解決tableView復(fù)用錯(cuò)亂問題:每次都會(huì)調(diào)UIImageView+WebCache文件中的 [self sd_cancelCurrentImageLoad];
- iOS事件響應(yīng)鏈機(jī)制是什么?
-
如圖view上有橫向排列l(wèi)abel1 和 label2, label1坞古,label2間距固定备韧,內(nèi)容動(dòng)態(tài)變化。 請(qǐng)使用AutoLayout建立約束痪枫,保證label2內(nèi)容要完全顯示织堂,label1內(nèi)容自適應(yīng)?
答案:請(qǐng)參考iOS AutoLayout使用技巧
3. Swift題
- struct 和 class 的區(qū)別奶陈?
區(qū)別:
a. 類可以繼承易阳,結(jié)構(gòu)體不可以
b. 可以讓一個(gè)類的實(shí)例來反初始化,釋放存儲(chǔ)空間吃粒,結(jié)構(gòu)體做不到
c. 類的對(duì)象是引用類型潦俺,而結(jié)構(gòu)體是值類型。所以類的賦值是傳遞引用 ,結(jié)構(gòu)體則是傳值事示。
相同點(diǎn):
a早像,類和結(jié)構(gòu)體都可以擴(kuò)展
b,定義屬性用于儲(chǔ)存值
c肖爵,定義方法用于提供功能
d卢鹦,定義下標(biāo)用于通過下標(biāo)語法訪問值
e,定義初始化器用于生成初始化值
- class與staitc關(guān)鍵字的區(qū)別劝堪?
a. static 可以在類冀自、結(jié)構(gòu)體、或者枚舉中使用秒啦。而 class 只能在類中使用熬粗。
b. static 可以修飾存儲(chǔ)屬性,static 修飾的存儲(chǔ)屬性稱為靜態(tài)變量(常量)余境。而 class 不能修飾存儲(chǔ)屬性荐糜。
c. static 修飾的計(jì)算屬性不能被重寫。而 class 修飾的可以被重寫葛超。
d. static 修飾的靜態(tài)方法不能被重寫暴氏。而 class 修飾的類方法可以被重寫。
e. class 修飾的計(jì)算屬性被重寫時(shí)绣张,可以使用 static 讓其變?yōu)殪o態(tài)屬性答渔。
f. class 修飾的類方法被重寫時(shí),可以使用 static 讓方法變?yōu)殪o態(tài)方法侥涵。
最后
小編也總結(jié)了一個(gè)PDF文檔的面試題沼撕,由于簡(jiǎn)書不能上傳文件,需要答案可以加小編的QQ交流群551346706芜飘,在里面獲取文檔务豺,也歡迎招聘者,找工作的來嗦明,提供一個(gè)更大的平臺(tái)(需要的朋友可以獲取笼沥,希望可以幫助到大家)