當前位置:才華齋>範例>生活經驗>

程式設計師面試的注意事項

生活經驗 閱讀(3.28W)

程式設計師面試有哪些注意事項需要牢記?下面就由小編給大家介紹介紹吧,希望對大家有幫助。

程式設計師面試的注意事項

程式設計師面試的注意事項:

Top 1 誠實,不要虛張聲勢

自信地回答問題,如果你不知道,那就坦誠地說“我不知道,但是我認為……”。知之為知之,不知為不知,不要理直氣壯地講述一個錯誤的答案,這會讓面試官懷疑你前面那些正確的答案搞不好也是胡謅的,功虧一簣。雖然這句措辭也不是萬金油,但是卻能顯示你積極思考的能力和永不放棄的態度。對面試官提出的所有問題都要做一番努力,不要一句“我不知道”就輕易打發。

Top 2 做好寫程式碼的準備

如果要你寫程式碼,那就要小心了,千萬別忘記遵循基本規則。我常聽那些應聘人員一臉茫然地說“呀,我忘記語法了……”,我一看,原來是忘記for迴圈的語法了。我們不希望你在面試的時候記得所有的東西,但是一些基本的,像迴圈、if條件、主方法、異常,這些要是忘記了,太不應該了。看到這裡,如果你一時間也沒法想起這些,不妨複習一下。寫程式碼的時候要注重空格和縮排,那些字寫的不好的可要注意了!

Top 3 做好解釋專案的準備

軟體工程師在寫程式碼之前就應該對業務需求瞭如指掌。所以,你得能解釋專案中一一對應的流程分別是什麼。寫個三四行程式碼就深層次解釋一下,然後聽聽非團隊人員的意見和建議。當局者迷,旁觀者清。看看和客戶交流的內部營銷記錄,找找線索。可以先找個朋友練習一下,確保自己能說到點子上。

一旦你解釋完相關的業務需求,那麼接下來面試官通常會問你關於這個專案的技術架構。所有你還必須準備架構圖,以顯示專案中的各個元件是如何相互作用的。架構圖不需要任何特定的UML格式,但是你得確保畫在上面的東西你都能解釋得通。舉個例子,如果你正在做一個可以顯示資料是如何從使用者介面到資料庫的Web應用程式。那麼你就得展示涉及的不同layers 、使用的技術,等等。而最重要的是,你應該清楚你正在做什麼,不要講到後來,亂七八糟,答非所問。

Top 4 將爭論轉換為交談

即使你知道對方錯了,也不要爭論,試著以“ok,不過我不是很確定這是否正確,我回去再查閱一下”這樣的言語繼續話題。這能讓雙方都有一個愉快的心情。在面試的時候要認真聽對方的話中之意,回答的時候要以自己的經驗為依據,不要天馬行空。

Top 5 事先對各種WHY做好準備

大公司的面試關於問“Why?”的肯定很多,搞不好甚至是以“Why?”開頭,以“Why?”結束,一路“Why?”下去。例如經典的Java問題“String和StringBuffer的區別是什麼?”,後面往往還會有“為什麼String……?”又或者“如何才能……?”事先做好如何回答這些“How?”和“Why?”問題的準備。

Top 6 講述自己最大的成就

在自己以往的工作中,總會有個你認為是最棒的成就。你得學會將這個成就描繪得“天花亂墜”,讓面試官覺得這是一個超級不平凡的成績。所以準備一個勵志生動又可信的故事以展示你的能力是如何一步步讓你完成那個艱鉅的任務的。之所以要事先準備好是因為擔心事到臨頭你搞不好會忘東忘西有所遺漏不說,最怕就是語言不連貫,讓面試官無法理解。

面試的問題

1、自動釋放池是什麼,如何工作?

當您向一個物件傳送一個autorelease訊息時,Cocoa就會將該物件的一個引用放入到最新的自動釋放池。它仍然是個正當的物件,因此自動釋放 池定義的作用域內的其它物件可以向它傳送訊息。當程式執行到作用域結束的位置時,自動釋放池就會被釋放,池中的`所有物件也就被釋放。

2、說一說static 關鍵字

(1)函式體內 static 變數的作用範圍為該函式體,不同於 auto 變數,該變數的記憶體只被分配一次,

因此其值在下次呼叫時仍維持上次的值;

(2)在模組內的 static 全域性變數可以被模組內所用函式訪問,但不能被模組外其它函式訪問;

(3)在模組內的 static 函式只可被這一模組內的其它函式呼叫,這個函式的使用範圍被限制在宣告

它的模組內;

(4)在類中的 static 成員變數屬於整個類所擁有,對類的所有物件只有一份拷貝;

(5)在類中的 static 成員函式屬於整個類所擁有,這個函式不接收 this 指標,因而只能訪問類的static 成員變數。

3、什麼事單件例項

Foundation 和 Application Kit 框架中的一些類只允許建立單件物件,即這些類在當前程序中的唯一例項。舉例來說,NSFileManager 和NSWorkspace 類在使用時都是基於程序進行單件物件的例項化。當向這些類請求例項的時候,它們會向您傳遞單一例項的一個引用,如果該例項還不存在,則首先進行例項的分配 和初始化。單件物件充當控制中心的角色,負責指引或協調類的各種服務。如果類在概念上只有一個例項(比如NSWorkspace),就應該產生一個單件例項,而不是多個例項;如果將來某一天可能有多個例項,您可以使用單件例項機制,而不是工廠方法或函式。

4、說說Objective-C,有哪些優點哪些不足

objc優點:

1) Cateogies

2) Posing

3) 動態識別

4) 指標計算

5)彈性訊息傳遞

6) 不是一個過度複雜的 C 衍生語言

7) Objective-C 與 C++ 可混合程式設計

不足:

1) 不支援名稱空間

2) 不支援運算子過載

3)不支援多重繼承

4)使用動態執行時型別,所有的方法都是函式呼叫,所以很多編譯時優化方法都用不到。(如行內函數等),效能低劣。

5、#import和#include的區別,@class代表什麼?

@class一般用於標頭檔案中需要宣告該類的某個例項變數的時候用到,在m檔案中還是需要使用#import,而#import比起#include的好處就是不會引起重複包含。

6、執行緒和程序的區別?

程序和執行緒都是由作業系統所體會的程式執行的基本單元,系統利用該基本單元實現系統對應用的併發性。

程序和執行緒的主要差別在於它們是不同的作業系統資源管理方式。程序有獨立的地址空間,一個程序崩潰後,在保護模式下不會對其它程序產生影響,而執行緒只是一個 程序中的不同執行路徑。執行緒有自己的堆疊和區域性變數,但執行緒之間沒有單獨的地址空間,一個執行緒死掉就等於整個程序死掉,所以多程序的程式要比多執行緒的程式 健壯,但在程序切換時,耗費資源較大,效率要差一些。但對於一些要求同時進行並且又要共享某些變數的併發操作,只能用執行緒,不能用程序。

7、Object-C的記憶體管理?

1.當你使用new,alloc和copy方法建立一個物件時,該物件的保留計數器值為1.當你不再使用該物件時,你要負責向該物件傳送一條release或autorelease訊息.這樣,該物件將在使用壽命結束時被銷燬。

2.當你通過任何其他方法獲得一個物件時,則假設該物件的保留計數器值為1,而且已經被設定為自動釋放,你不需要執行任何操作來確保該物件被清理.如果你打算在一段時間內擁有該物件,則需要保留它並確保在操作完成時釋放它。

3.如果你保留了某個物件,你需要(最終)釋放或自動釋放該物件.必須保持retain方法和release方法的使用次數相等。

8、屬性readwrite,readonly,assign,retain,copy,nonatomic 各是什麼作用,在那種情況下用?

readwrite 是可讀可寫特性;需要生成getter方法和setter方法時

readonly 是隻讀特性 只會生成getter方法 不會生成setter方法 ;不希望屬性在類外改變

assign 是賦值特性,setter方法將傳入引數賦值給例項變數;僅設定變數時;

retain 表示持有特性,setter方法將傳入引數先保留,再賦值,傳入引數的retaincount會+1;

copy 表示賦值特性,setter方法將傳入物件複製一份;需要完全一份新的變數時。

nonatomic 非原子操作,決定編譯器生成的setter getter是否是原子操作,atomic表示多執行緒安全,一般使用nonatomic