搜狗面試總結(一面)


前兩天去搜狗面試,雖然榮幸的過了一面,但是二面還是很擔心的😟 

總結一下 一面的題 把  沒有一家公司會面時一個人二個多小時吧  有點坑 

不過大公司面試 牽扯到很多 底層 算法的問題,還有一些智商的問題。總之、各自安好吧 

 

1, aoturelsepoll 什么時候用? 

2, 自動釋放時系統都做了那些功能

3, 第一次加載  緩存了 返回再進入時 為什么重復加載了 

4, 都用過哪些 運行時 改變了什么 ? 

5, block 使用時 要注意什么 

6, 修飾詞 有哪些 什么時候用  

7, GPUimage的使用 

8,在copy時   NSarraycopy  和 nsmutarblearraycopy  的區別 

9,觀察者模式 的分類? 

 

[※]@property中有哪些屬性關鍵字?

[※]weak屬性需要在dealloc中置nil么?

[※※]@synthesize和@dynamic分別有什么作用?

[※※※]ARC下,不顯式指定任何屬性關鍵字時,默認的關鍵字都有哪些?

[※※※]用@property聲明的NSString(或NSArray,NSDictionary)經常使用copy關鍵字,為什么?如果改用strong關鍵字,可能造成什么問題?

[※※※]@synthesize合成實例變量的規則是什么?假如property名為foo,存在一個名為_foo的實例變量,那么還會自動合成新變量么?

[※※※※※]在有了自動合成屬性實例變量之后,@synthesize還有哪些使用場景?

[※※]objc中向一個nil對象發送消息將會發生什么?

[※※※]objc中向一個對象發送消息[obj foo]和objc_msgSend()函數之間有什么關系?

[※※※]什么時候會報unrecognized selector的異常?

[※※※※]一個objc對象如何進行內存布局?(考慮有父類的情況)

[※※※※]一個objc對象的isa的指針指向什么?有什么作用?

[※※※※]下面的代碼輸出什么?

Objective-C

1234567891011 @implementation Son : Father- (id)init{self= [superinit];if(self){NSLog(@"%@",NSStringFromClass([selfclass]));NSLog(@"%@",NSStringFromClass([superclass]));}returnself;}@end

[※※※※]runtime如何通過selector找到對應的IMP地址?(分別考慮類方法和實例方法)

[※※※※]使用runtime Associate方法關聯的對象,需要在主對象dealloc的時候釋放么?

[※※※※※]objc中的類方法和實例方法有什么本質區別和聯系?

[※※※※※]_objc_msgForward函數是做什么的,直接調用它將會發生什么?

[※※※※※]runtime如何實現weak變量的自動置nil?

[※※※※※]能否向編譯后得到的類中增加實例變量?能否向運行時創建的類中添加實例變量?為什么?

[※※※]runloop和線程有什么關系?

[※※※]runloop的mode作用是什么?

[※※※※]以+ scheduledTimerWithTimeInterval...的方式觸發的timer,在滑動頁面上的列表時,timer會暫定回調,為什么?如何解決?

[※※※※※]猜想runloop內部是如何實現的?

[※]objc使用什么機制管理對象內存?

[※※※※]ARC通過什么方式幫助開發者管理內存?

[※※※※]不手動指定autoreleasepool的前提下,一個autorealese對象在什么時刻釋放?(比如在一個vc的viewDidLoad中創建)

[※※※※]BAD_ACCESS在什么情況下出現?

[※※※※※]蘋果是如何實現autoreleasepool的?

[※※]使用block時什么情況會發生引用循環,如何解決?

[※※]在block內如何修改block外部變量?

[※※※]使用系統的某些block api(如UIView的block版本寫動畫時),是否也考慮引用循環問題?

[※※]GCD的隊列(dispatch_queue_t)分哪兩種類型?

[※※※※]如何用GCD同步若干個異步調用?(如根據若干個url異步加載多張圖片,然后在都下載完成后合成一張整圖)

[※※※※]dispatch_barrier_async的作用是什么?

[※※※※※]蘋果為什么要廢棄dispatch_get_current_queue?

[※※※※※]以下代碼運行結果如何?

Objective-C

123456789 - (void)viewDidLoad{[superviewDidLoad];NSLog(@"1");dispatch_sync(dispatch_get_main_queue(),^{NSLog(@"2");});NSLog(@"3");}

[※※]addObserver:forKeyPath:options:context:各個參數的作用分別是什么,observer中需要實現哪個方法才能獲得KVO回調?

[※※※]如何手動觸發一個value的KVO

[※※※]若一個類有實例變量NSString *_foo,調用setValue:forKey:時,可以以foo還是_foo作為key?

[※※※※]KVC的keyPath中的集合運算符如何使用?

[※※※※]KVC和KVO的keyPath一定是屬性么?

[※※※※※]如何關閉默認的KVO的默認實現,並進入自定義的KVO實現?

[※※※※※]apple用什么方式實現對一個對象的KVO?

[※※]IBOutlet連出來的視圖屬性為什么可以被設置成weak?

[※※※※※]IB中User Defined Runtime Attributes如何使用?

[※※※]如何調試BAD_ACCESS錯誤

[※※※]lldb(gdb)常用的調試命令?

 

其實大公司面試 還是不錯的,有咖啡,有飲料 有茶水間,氣氛向咖啡廳談事情 二輪是筆試 加油!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM