導航:首頁 > 程序命令 > create游戲開發程序員面試題

create游戲開發程序員面試題

發布時間:2022-09-30 18:53:29

程序員面試經常被提到的問題

java 程序員常用面試題- -

Java程序員面試三十二問

Java程序員面試三十二問
作者:佚名 來自:未知

第一,談談final, finally, finalize的區別。

第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以

implements(實現)interface(介面)?

第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。

第四,&和&&的區別。

第五,HashMap和Hashtable的區別。

第六,Collection 和 Collections的區別。

第七,什麼時候用assert.

第八,GC是什麼? 為什麼要有GC?

第九,String s = new String("xyz");創建了幾個String Object?

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

第十二,sleep() 和 wait() 有什麼區別?

第十三,Java有沒有goto?

第十四,數組有沒有length()這個方法? String有沒有length()這個方法?

第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

第十六,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()?

它們有何區別?

第十七,給我一個你最常見到的runtime exception.

第十八,error和exception有什麼區別?

第十九,List, Set, Map是否繼承自Collection介面?

第二十,abstract class和interface有什麼區別?

第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是

synchronized?

第二十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體

類(concrete class)?

第二十三,啟動一個線程是用run()還是start()?

第二十四,構造器Constructor是否可被override?

第二十五,是否可以繼承String類?

第二十六,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它

方法?

第二十七,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行

,什麼時候被執行,在return前還是後?

第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?

第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對



第三十,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後

的結果,那麼這里到底是值傳遞還是引用傳遞?

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

第三十二,編程題: 寫一個Singleton出來。

以下是答案

第一,談談final, finally, finalize的區別。

final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父

類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,

可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能

讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載finally?再異常處理時提供 finally

塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入

finally 塊(如果有的話)。

finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去

之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是

在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執

行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。

第二,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以

implements(實現)interface(介面)?

匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面

,由另一個內部類實現。

第三,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。

Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套

類最大的不同就在於是否有指向外部的引用上。具體可見http:

//www.frontfree.net/articles/services/view.asp?id=704&page=1

註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2

不能從一個static內部類的一個對象訪問一個外部類對象

第四,&和&&的區別。

&是位運算符。&&是布爾邏輯運算符。

第五,HashMap和Hashtable的區別。

都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。

HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。

Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步

的。

第六,Collection 和 Collections的區別。

Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。

Collection是個java.util下的介面,它是各種集合結構的父介面。

第七,什麼時候用assert。

斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為

false,那麼系統會報告一個 AssertionError。它用於調試目的:

assert(a > 0); // throws an AssertionError if a <= 0

斷言可以有兩種形式:

assert Expression1 ;
assert Expression1 : Expression2 ;

Expression1 應該總是產生一個布爾值。
Expression2 可以是得出一個值的任意表達式。這個值用於生成顯示更多調試信息的 String 消息。

斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:

javac -source 1.4 Test.java

要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。
要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。
要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。

可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的參數。

不過,斷言不應該用於驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參

數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任

何方式改變程序的狀態。

第八,GC是什麼? 為什麼要有GC? (基礎)。

GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收

集,可以調用下面的方法之一:

System.gc()
Runtime.getRuntime().gc()

第九,String s = new String("xyz");創建了幾個String Object?

兩個對象,一個是"xyx",一個是指向"xyx"的引用對象s。

第十,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

第十一,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為

s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。

第十二,sleep() 和 wait() 有什麼區別? 搞線程的最愛

sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢復執行。

這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)"醒來"的線程具有更

高的優先順序,(b)正在運行的線程因為其它原因而阻塞。

wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對

象進入等待狀態,直到被喚醒或等待時間到。

第十三,Java有沒有goto?

Goto?java中的保留字,現在沒有在java中使用。

第十四,數組有沒有length()這個方法? String有沒有length()這個方法?

數組沒有length()這個方法,有length的屬性。
String有有length()這個方法。

第十五,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類

之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其

父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子

類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或

有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改

變返回值的類型。

第十六,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它

們有何區別?

Set里的元素是不能重復的,那麼用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相

等。

equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的

內容和類型相配的話,返回真值。

第十七,給我一個你最常見到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException,

BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException,

CMMException, , DOMException, EmptyStackException,

IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException,

IllegalStateException, ImagingOpException, IndexOutOfBoundsException,

MissingResourceException, NegativeArraySizeException, NoSuchElementException,

NullPointerException, ProfileDataException, ProviderException, RasterFormatException,

SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException,

UnsupportedOperationException

第十八,error和exception有什麼區別?

error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能

處理這樣的情況。

exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。

第十九,List, Set, Map是否繼承自Collection介面?

List,Set是

Map不是

第二十,abstract class和interface有什麼區別?

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基

本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而

可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象

靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代

之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的

介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數

。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即

將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。

由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類

型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面。

第二十一,abstract的method是否可同時是static,是否可同時是native,是否可同時是

synchronized?

都不能

第二十二,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類

(concrete class)?

介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類

必須有明確的構造函數。

第二十三,啟動一個線程是用run()還是start()?

啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味著它可以由

JVM調度並執行。這並不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。

第二十四,構造器Constructor是否可被override?

構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。

第二十五,是否可以繼承String類?

String類是final類故不可以繼承。

第二十六,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它

方法?

不能,一個對象的一個synchronized方法只能由一個線程訪問。

第二十七,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行

,什麼時候被執行,在return前還是後?

會執行,在return前執行。

第二十八,編程題: 用最有效率的方法算出2乘以8等於幾?

有C背景的程序員特別喜歡問這種問題。

2 << 3

第二十九,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?

不對,有相同的hash code。

第三十,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後

的結果,那麼這里到底是值傳遞還是引用傳遞?

是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數

的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。

第三十一,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int

、 short、 char 或者 byte。long,string 都不能作用於swtich。

第三十二,編程題: 寫一個Singleton出來。

Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

一般Singleton模式通常有幾種種形式:

第一種形式: 定義一個類,它的構造函數為private的,它有一個static的private的該類變數,

在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。

public class Singleton {
private Singleton(){}
//在自己內部定義自己一個實例,是不是很奇怪?
//注意這是private 只供內部調用
private static Singleton instance = new Singleton();
//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問
public static Singleton getInstance() {
return instance;
}
}

第二種形式:

public class Singleton {
private static Singleton instance = null;
public static synchronized Singleton getInstance() {
//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次
//使用時生成實例,提高了效率!
if (instance==null)
instance=new Singleton();
return instance; }
}

其他形式:

定義一個類,它的構造函數為private的,所有方法為static的。

一般認為第一種形式要更加安全些

第三十三 Hashtable和HashMap

Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現

HashMap允許將null作為一個entry的key或者value,而Hashtable不允許

還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為

contains方法容易讓人引起誤解。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,

不需要自己為它的方法實現同步,而HashMap就必須為之提供外同步。

Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。

⑵ 誰有程序員的面試題,例如東軟公司,或其他公司的程序員面試題

程序員面試一直是社區樂於討論的熱門話題。
這篇文章是站在面試官角度對於程序員面試問題的一個階段性反思和經驗總結。
【目標】
相信和不少朋友一樣,有了幾年工作經驗成為Senior後就開始了面試別人的經歷。作者在最初這個階段只是按照自己的想像把」找到基礎好的程序員「,」找到演算法能力優秀的程序員「,」找到有Android開發經驗的程序員「等作為面試的目標。但是,實際的經歷告訴作者,尤其是按「基礎好」,「演算法好」這些目標招到的人最終效果並不好。比如,有的面試者基礎知識和演算法掌握情況不錯,進程、線程、內存等概念清晰,基本的Hash,二叉樹,快速排序等數據結構和演算法也比較熟悉,但是進公司後在實際工作中表現得很糟糕。後來,作者才發現原來是作者的面試目標出了問題,作者原先的面試方法更像是大學的演算法或操作系統期末考試,按照這種方法讓許多並不合適的人通過了面試,同時也可能錯過了許多合適的人。
後來,作者的反思是,從公司的角度講,面試的根本目的是找到"能夠干好工作"的人,而「高學歷」,「演算法好」,「基礎好」,「有經驗」這些都是表象而不是根本,它們並不能直接和「工作好」劃等號。
【方法】
目標明確了,但接下來的問題是假設面試者是一個黑盒系統,「工作好」不是直接可觀測變數,你所能直接觀測的變數是基礎、演算法、經驗、學歷、性格、談吐、年齡等等。所以,實際上,你只能從「基礎好」,「演算法好」等可以直接觀測的量去推測「工作好」的概率,這就是一個在「X好「條件下"工作好「的條件概率問題:P(工作好 | X好)。
根據這個模型,面試所應該考察哪些方面就很明顯了,那就是選擇那種最具有區分性的方面來考察。比如,考察面試者的體型特徵沒有太大意義,因為P(工作好|高),P(工作好|矮),P(工作好|胖),P(工作好|瘦)的概率都差不多;所以,體型特徵不具有區分性,這不是面試所應該關注的內容。
面試官應當結合職位的要求明確哪些因素具有比較好的區分性。比如,如果要招一名技術門檻比較高的3D游戲引擎開發工程師,面試者A具有3D游戲引擎開發的經驗,但是在基礎知識和演算法面試方面表現一般;面試者B相反,基礎知識和演算法面試表現很好,但沒有游戲開發經驗,而你只能選擇其一。你選誰呢?其實,這就是兩個條件概率問題P(工作好|經驗好,基礎一般,演算法一般)和P(工作好|沒經驗,基礎好,演算法好)。這個問題就留給面試官來判斷了,就作者個人而言,對於技術門檻較高需要技術積累的職位,經驗更加說明問題,因此,作者更傾向於面試者A。
下面,作者再結合自己的經驗談談對面試中常見方面的看法。
【演算法】
演算法是Google和MS等大公司面試所重點考察的內容。作者個人很喜歡演算法,曾經參加ACM/ICPC拿過北京賽區的13名。但是,就個人經驗來看,作者所接觸過的絕大多數開發職位而言,演算法都不適合作為考察面試者優劣的主要因素。對於普通的非演算法性開發職位,考察面試者的演算法就相當於考察他打乒乓球好不好一樣,與目標「工作好」的相關性太低。就作者個人的經驗來看,差不多P(工作好|演算法好)=50%,也就是演算法面試沒有太大的區分性。
甚至,還有一種很不好的情況特別多地出現在演算法好的面試者身上,作者稱之為「只磨刀,不砍柴」。什麼意思呢?有類人只對什麼A*演算法,非同步編程,JVM類載入機制這種純技術問題感興趣,對實現用戶需求毫無興趣。這類人看起來有一定的技術能力,但是對公司來講貢獻十分有限,甚至不如技術一般但認真負責的人。所以,一旦遇到面試者演算法好,作者就特別留意考察會不會是這種「只磨刀,不砍柴」的人。
另外,雖然作者個人不了解Google和MS,但作者對於其特別重視考察演算法能力的面試策略是持懷疑態度的。即使在這樣的世界級大公司,演算法雖然重要,但可以想像在項目實施過程所遇到的各種各樣問題中,演算法問題絕大多數時候不會是主要瓶頸,沒有到那種需要每個人都是演算法高手的情況。實際上,絕大多數項目真正難點並不是一兩個演算法瓶頸,甚至也不是單點的技術瓶頸,而是系統性的組織、協調、設計、開發問題,有大量的看起來不是那麼有技術含量的臟活累活,也有許多問題是由於信息不足,並不是技術能力強就能克服這些困難。一個團隊最好優勢互補,有人演算法強,有人業務分析能力強,有人擅長後端服務,有人擅長前端界面,有人聰明,有人踏實,這是最好的。如果按照「演算法好」的單一標准選材,必定會把許多優秀的人才拒之門外。
補充:在更多地了解了Google和Facebook等一流公司的面試細節之後,作者對這個問題的認識有了一定的改變,實際上這些公司在面試過程中並不完全強調技巧性很強的演算法,而是更加註重編碼(Coding)能力,只是在進行編碼測試的過程中往往是通過一些簡單演算法題來進行的。作者對於這種面試方法越來越欣賞,並且也作為了作者們公司面試過程中的重點環節,因為編碼能力的測試是十分必要的,它有著知識性問題無法取代的作用,如果一個面試者連「判斷一個字元串是否是另一個字元串的子串」這樣的題目都無法正確並快速地實現,那麼基本上可以直接排除了。作者這里所強調的是不必考察高難度的演算法問題,並非不重視編碼能力測試,請讀者不要誤解
【基礎】
基礎面試是指考察諸如指針使用、進程線程概念等基礎知識的面試,十分類似於大學期末考試題。作者曾經以為基礎面試十分重要,但是現在不這么看了。在工作中基礎的確是重要的,但是在面試過程中,它必須具有區分性才有意義,也就是說P(工作好|基礎好)的概率要高,那麼考察指針使用,進程線程區別這樣的基礎題目才有它的意義。作者的實際經驗是,基礎面試並不具有很好的區分性,和演算法一樣, 差不多P(工作好|基礎好) = 50%。同時,基礎面試是最容易准備的,中國人有長期的應試教育經驗,要准備幾個把玩指針題目太容易了。
作者曾經遇到過這樣的面試者,他的C語言基礎和編譯、鏈接等原理掌握得非常好,給作者留下了深刻的印象,作者給的面試結論是:知識面不寬,只會C語言,但基礎很扎實,建議錄用。後來的事情證明了那個結論的前半部分是對的,但是」建議錄用「錯了。他在實際工作中表現得一塌糊塗,不理解需求,不理解整體架構;同時,上班時間不是花在項目上,而是花在閱讀諸如《程序員的自作者修養》之類的書籍上。最後,這位同事由於長期「不出活」離開了公司。
基礎不是不重要,而是「基礎好」不足以說明面試者能幹好工作,因為基礎是屬於局部性知識,而實際工作需要綜合性能力,二者有天壤之別。C語言、操作系統能考高分,但是不會寫程序的人在大學作者們還見得少嗎? 軟體開發就像蓋房子,綜合能力是設計和搭骨架,基礎知識是碼磚。張小龍原先Foxmail是Delphi開發的,他它不懂C#,你如果要招聘一個開發.NET Email客戶端的人,你考察他對CLR掌握得好不好有意義嗎? 讓張小龍來開發一個C#版的Foxmail真的會有困難嗎? 你招一個精通C#但沒有Email客戶端開發經驗的人來真的比張小龍靠譜嗎?
作者說基礎知識不重要,和古人說的「不積窪步無以至千里」是不是矛盾呢?不矛盾!「窪步」與「千里」是一種可累加關系,但再多的「基礎知識」都累加不成「綜合能力」。學習軟體開發要像持續集成一樣,一開始就是一個完整的系統,雖然規模不大,問題很多,但它麻雀雖小五臟俱全,從小系統到大系統,從簡單系統到復雜系統逐步演化。
所以,基礎好本身不足以說明太多的問題,必須進一步考察綜合能力。對於基礎面試表現不好的面試者,如果時間允許也要進一步考察,有的面試者其實是有能力的,只是沒有進行充分的准備。最理想的狀態當然是基礎和綜合能力俱佳,若不能兼顧,應當綜合能力優先。
【經驗】
這里所說的經驗不是通過工作了多少年來衡量的,而主要是指面試者的經歷,比如,是否完整地實現過一個軟體,或作為主要開發者完成過一個項目。經驗的重要性在於它能說明一個人的綜合能力。從項目的性質、規模和難度,面試官就可以大致判斷出面試者的綜合能力。如果一個面試者一直在大公司負責一個小模塊的開發維護,那麼基本可以判斷他不具備獨立或作為主要開發者承擔一個項目的能力,只適合在另一家大公司做類似的事情。對於門檻較高需要長期技術積累的職位,相關經驗更顯得尤為重要,比如,Linux內核開發,JVM開發,游戲引擎開發,資料庫實現,高級UX等。對於這類職位,沒有經驗的面試者即使綜合素質不錯也是需要長時間的學習和積累才能勝任。所以,基本上如果確定了你的職位屬於此類,那麼相關經驗毫無疑問應該成為首選因素,換句話說,P(工作好 | 相關經驗好)的概率是非常高的。
通過項目經驗判斷面試者的優劣比通過基礎和演算法測試更加靠譜,所以,面試過程中面試官應該花比較多的時間聽面試者介紹項目經驗,並進行深入地探討交流,了解面試者的知識面、思維能力、表達能力等。同時,可以結合項目提一些基礎知識和演算法的問題,比如,如果面試者做過C++相關的項目,那就可以問他如何進行內存管理?是否熟悉智能指針?如果面試者的回答不能令人滿意,那麼就基本上可以判斷他的項目做得不是很好。
要注意的是,經驗也是一個多維度的事物。比如,C++股票交易中間件系統,這就涉及(C++,中間件,股票) 3個維度。假如面試者A做過C++股票交易客戶端,面試者B做過C的股票交易中間件。從語言角度看,A最匹配,從項目性質看,B最匹配,你如何選擇?這就是在多個維度中,哪個維度更重要的問題,就這個例子而言,作者個人更傾向於B,因為作者認為中間件開發經驗是主要矛盾,而從C切換到C++並不是問題。所以,面試官需要判斷哪一種經驗是主要的,而哪一種經驗是次要的。比如,作者們招聘Android應用開發,這個職位的Android技術門檻並不高,它的真正難點在於做出好的用戶體驗(UX)。所以,如果一個面試者沒有Android的經驗作者們是可以接受的,但是作者希望他在UX方面有經驗,至少做過其他平台的移動應用開發。
【性格】
現在,作者來談作者認為最重要的因素:性格。這可能是許多初為面試官的朋友所難以想像的,怎麼會是性格最重要呢?說實話,當作者意識到這一點時,作者自己也很驚訝!說白了,還是 P(工作好|性格好)的概率最高啊。作者的實際經驗是,如果一個人的性格好,他能把工作做好的可能性是最高的,性格好遠比基礎好、演算法好要靠譜。
一個人如果技術上有缺陷,經驗上有不足,但性格好,在團隊中是很容易由其他人來補位的,他自己也很容易逐漸補起來;相反,如果一個人的性格不好,所有的技術優勢經驗優勢都發揮不出來,甚至還會起到負作用,而且性格缺點很難改變。作者一直談到實際工作所需要的是綜合性的能力,這種綜合能力的發揮中性格是至關重要的。項目中不止會遇到技術問題,要涉及溝通、協調,不同的人不同的部門既有合作又有磨擦,如何處理這些事情都需要一個良好的性格。可以說,在開發團隊里讓你與眾不同的不是你從哪個學校畢業,也不是你過去的經驗,而是你的性格
當然,性格是一個復雜的東西,它包含了很多的方面,並非所有方面都是程序員面試所需要關注的。作者的經驗是可以重點考察這些方面:
1) 態度積極還是消極。有的面試者在談吐中就會自然給你一種積極上進的感覺,或者你可以在他的經歷中發現他積極的因素,這些都不是太難看出來的。相反,有的面試者你能明顯感覺到他的消極情緒。積極性在工作中是十分重要的,積極的人能給團隊帶來朝氣,也更易於合作。基本上,如果確定面試者屬於態度積極的,他通過作者這一關的可能性就會大大增加;相反,如果確定屬於態度消極的,即使技術能力不錯作者也會十分謹慎。
2) IQ。作者的經驗是,總體來看,聰明的人在工作中的表現更為優秀。在面試中要考察一個人是否聰明並不一定要像Google和MS那樣找些專門測試IQ的智力題,其實,你只需要看他討論問題是不是很有邏輯性,思考和說話是不是反應敏捷就可以做出大致的判斷。另外,眼睛是人心靈的窗戶,一個人聰明與否,眼睛是會說話的。不過,聰明也不完全是優點,比如,當公司或項目遇到困難時,往往是聰明人先跑掉了,堅守的往往是IQ一般的人。
3) 語言表達能力。語言表達能力也是程序員十分重要的一項素質,它關繫到項目中的溝通是否順暢。面試官可以看看面試者能否用簡明的語言介紹清楚曾經做過的項目,能否抓住要點,能否考慮到聽者的相關背景。一般來講,語言表達能力強的人綜合能力都不會太差。(面試網 www.mian4.net)
4) 是否具有用戶意識。有人說程序員是做研發的,哪來什麼用戶?只有銷售、市場人員才會和用戶打交道。其實,這是完完全全的錯誤認識。你寫一個模塊,甚至一個API,只要有別人用,他就是你的用戶。有的程序員設計一個模塊或是一個軟體總是習慣於從使用者的角度來考慮,盡量地方便使用者,這就是一種良好的用戶意識。具有良好的用戶意識的人更能考慮別人的感受和整體的需要,而不是單純地從自己和局部來思考問題。當面試者談及過去的項目經驗時,面試官可以常常站在用戶的角度對其進行提問,從這個過程中觀察其是否具有良好的用戶意識。
5) 如何應對質疑和壓力。面試官應該對面試者的回答以及以往項目進行合理的質疑,看看他如何應對。曾經有一位面試者談到做游戲登錄伺服器的經歷,作者就問:「如果登錄伺服器掛了,怎麼辦呢」?他說原先雖然沒有考慮這個問題,但是可以怎麼怎麼改進。其實,大家都理解項目中有各種不完美,這裡面原因很多,只要面對質疑和壓力能從容應對努力往好的方向思考解決就可以了,不需要掩飾缺陷,更不應該有情緒。作者遇到過有的面試者,一旦你對其項目提出質疑,他馬上產生反抗情緒,或不高興,或不承認有問題,這很容易一下子看出來他在工作中容不得質疑和批評,這種人要想合作就很困難。
6) 個性特點。許多面試者喜歡在簡歷上寫「精通C++/Linux「,這些字眼看得人麻木,如果有人寫」喜歡C++/Linux「,作者就會有一種眼前一亮的感覺。「精通」是沒有感情色彩的敘述,而「喜歡」包含了面試者的個性,作者更願意看到面試者的個性。作者相信對某樣東西真正的熱情遠比你當前對它的掌握程度更為重要。其實,N年的經歷告訴作者們,同一個班的同學,同一個項目組的同事,雖然每天所學的知識,所接觸的工作都是相同的,但其實每個人的成績和表現差異是十分明顯的。那麼,到底本質的差異是什麼呢?其實,就是每個人的個性。是個性使得有的人業余時間去打球,有的人業余時間去看書,有的人喜歡Linux,有的人喜歡Mac。一個人在團隊中扮演的角色也和他的個性有很大的關系。面試官應該引導面試者展現自己的個性,並判斷其是否有益於團隊。
【總結】
最後總結起來,作者的經驗是:
1) 面試官的目標是找到」工作好「的人,一定要圍繞這個目標來進行面試,如果把面試當成了演算法或操作系統期末考試這就走入了誤區;
2) 面試過程是通過學歷、性格、基礎、經驗、演算法等可以測試的因素去綜合判斷面試者「工作好」的概率;

3) 在各種因素中,性格 > 經驗 > 基礎 > 演算法。性格是最重要的,如果性格不好,所有技術能力都會大打折扣,而且技術缺陷容易彌補,性格缺陷很難改變;經驗體現了一個人的綜合能力,你可以從面試者過去的經歷中判斷他能從事哪種工作,不能從事哪種工作;基礎和演算法則主要起到輔助參考的作用,基礎好的程序員一般適應性比較強,學新技術更快,但是切忌單純從基礎來判斷一個人的能力。
更多程序員面試問題請登陸楚湘人才網

⑶ java程序員面試的問題

java面試題大全-基礎方面Java基礎方面:
1、作用域public,private,protected,以及不寫時的區別
答:區別如下:
作用域 當前類 同一package 子孫類 其他package
public √ √ √ √
protected √ √ √ ×
friendly √ √ × ×
private √ × × ×
不寫時默認為friendly
2、Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)
答:匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實現
3、Static Nested Class 和 Inner Class的不同
答:Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上。註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象
4、&和&&的區別
答:&是位運算符,表示按位與運算,&&是邏輯運算符,表示邏輯與(and)
5、Collection 和 Collections的區別
答:Collection是集合類的上級介面,繼承與他的介面主要有Set 和List.
Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜索、排序、線程安全化等操作
6、什麼時候用assert
答:assertion(斷言)在軟體開發中是一種常用的調試方式,很多開發語言中都支持這種機制。在實現中,assertion就是在程序中的一條語句,它對一個boolean表達式進行檢查,一個正確程序必須保證這個boolean表達式的值為true;如果該值為false,說明程序已經處於不正確的狀態下,系統將給出警告或退出。一般來說,assertion用於保證程序最基本、關鍵的正確性。assertion檢查通常在開發和測試時開啟。為了提高性能,在軟體發布後,assertion檢查通常是關閉的
7、String s = new String("xyz");創建了幾個String Object
答:兩個,一個字元對象,一個字元對象引用對象
8、Math.round(11.5)等於多少? Math.round(-11.5)等於多少
答: Math.round(11.5)==12;Math.round(-11.5)==-11;round方法返回與參數最接近的長整數,參數加1/2後求其floor
9、short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯
答:short s1 = 1; s1 = s1 + 1; (s1+1運算結果是int型,需要強制轉換類型)short s1 = 1; s1 += 1;(可以正確編譯)
10、Java有沒有goto
答:java中的保留字,現在沒有在java中使用
11、數組有沒有length()這個方法? String有沒有length()這個方法
答:數組沒有length()這個方法,有length的屬性。String有有length()這個方法
12、Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型
答:方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被"屏蔽"了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型
13、Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它們有何區別
答:Set里的元素是不能重復的,那麼用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等
equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值
14、給我一個你最常見到的runtime exception
答:常見的運行時異常有如下這些ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, , DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException, ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFormatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException
15、error和exception有什麼區別
答:error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況
exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況
16、List, Set, Map是否繼承自Collection介面
答: List,Set是,Map不是
17、abstract class和interface有什麼區別
答:聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法
介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面
18、abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized
答:都不能
19、介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類(concrete class)
答:介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數
20、構造器Constructor是否可被override
答:構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading
21、是否可以繼承String類
答:String類是final類故不可以繼承
22、try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行,什麼時候被執行,在return前還是後
答:會執行,在return前執行
23、用最有效率的方法算出2乘以8等於幾
答:2 << 3
24、兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對
答:不對,有相同的hash code
25、當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞
答:是值傳遞。Java 編程語言只有值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的
26、swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
答:witch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich
27、ArrayList和Vector的區別,HashMap和Hashtable的區別
答:就ArrayList與Vector主要從二方面來說.
一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的
二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半
就HashMap與HashTable主要從三方面來說。
一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實現
二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的
三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value
28、char型變數中能不能存貯一個中文漢字?為什麼?
答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char佔16個位元組,所以放一個中文是沒問題的
29、GC是什麼? 為什麼要有GC
答:GC是垃圾收集的意思(Gabage Collection),內存處理是編程人員容易出現問題的地方,忘記或者錯誤的內存回收會導致程序或系統的不穩定甚至崩潰,Java提供的GC功能可以自動監測對象是否超過作用域從而達到自動回收內存的目的,Java語言沒有提供釋放已分配內存的顯示操作方法。
30、float型float f=3.4是否正確?
答:不正確。精度不準確,應該用強制類型轉換,如下所示:float f=(float)3.4
31、介紹JAVA中的Collection FrameWork(包括如何寫自己的數據結構)?
答:Collection FrameWork如下:
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│└Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection是最基本的集合介面,一個Collection代表一組Object,即Collection的元素(Elements)
Map提供key到value的映射
32、抽象類與介面?
答:抽象類與介面都用於抽象,但是抽象類(JAVA中)可以有自己的部分實現,而介面則完全是一個標識(同時有多重繼承的功能)。
JAVA類實現序例化的方法是實現java.io.Serializable介面
Collection框架中實現比較要實現Comparable 介面和 Comparator 介面
33、STRING與STRINGBUFFER的區別。
答:STRING的長度是不可變的,STRINGBUFFER的長度是可變的。如果你對字元串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法
34、談談final, finally, finalize的區別
答:final?修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載
finally?再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)
finalize?方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的
35、面向對象的特徵有哪些方面
答:主要有以下四方面:
1.抽象:
抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。
2.繼承:
繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。
3.封裝:
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。
4. 多態性:
多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。
36、String是最基本的數據類型嗎
答:基本數據類型包括byte、int、char、long、float、double、boolean和short。
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類
37、int 和 Integer 有什麼區別
答:Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。
原始類型封裝類,booleanBoolean,charCharacter,byteByte,shortShort,intInteger,longLong,floatFloat,doubleDouble
引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關
38、運行時異常與一般異常有何異同
答:異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。
39、說出ArrayList,Vector, LinkedList的存儲性能和特性
答:ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。
40、HashMap和Hashtable的區別
答:HashMap是Hashtable的輕量級實現(非線程安全的實現),他們都完成了Map介面,主要區別在於HashMap允許空(null)鍵值(key),由於非線程安全,效率上可能高於Hashtable。
HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。
HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。
Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現。
最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap 就必須為之提供外同步。
Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。

⑷ 程序員面試的時候考官一般問什麼問題(比較流行的)

給你提供點參考信息,希望能幫助到你:

1、使用相同的工具和時間限制模擬面試訓練

Google和微軟都會讓應聘者在白板上手工解答編程問題,但通常大部分的應聘者都是習慣於在電腦上利用編程工具系統編寫程序。因此面試的時候,某些應聘者離開了熟悉的電腦游標,站在白板前感覺手足無措不知該如何起行。又或者他們不習慣在編程之時旁邊有人觀看,這會讓他們感到緊張而無法正常思考。

在現實生活中,如果你想要橫渡英吉利海峽,自然不能總是在室內游泳池練習。你必須投身於大海在波濤之中訓練,在准備面試的時候也是如此。

在面試開始之前你最好向招聘單位詢問面試形式和面試問題。如果招聘單位讓你在某個房間考試且僅提供沒有匯編程序的編輯器,那麼就應該在家中按照這種情景進行練習。如果招聘公司單位讓你在白板上回答問題並會安排考官在旁監督,那麼你就要找一位軟體工程師來扮演考官配合你練習。即使找來的考官經驗不如你也沒有關系,他們依然能幫助你消除在他人面前出錯所帶來的緊張感,這樣可以讓你適應有人在旁邊盯著看的面試氛圍。

如果你恰巧認識我並希望由我來幫你聯系,那我的條件就是必須請我吃飯:如果你已經工作了就吃日本壽司大餐;如果你還是學生,那麼吃比薩餅也可以。

2、在面試過程中不要對細小錯誤耿耿於懷

我曾不止一次的在面試過程中碰到這種情況:當應聘者知道編程問題後,他馬上就想到了最佳的方案、確定了邊界條件,然後開始編寫程序。但在編寫過程中,應聘者犯了諸如首先檢查是不是操作順序錯誤或忘記設定某變數等無關大局的小錯誤,當我指出其錯誤之後,應聘者立刻變得十分緊張,這種焦慮情緒影響了他在後面環節的正常發揮。

其實這種恐懼心理完全不必要。一名優秀的程序員在編程過程中出現錯誤也是很正常的,就像是小提琴手在演奏高難度的巴赫交響樂時也會偶爾失誤。音樂會的聽眾可能會覺察到這些錯誤,但是聽眾絕對不會因為這種細小失誤就把出色的小提琴手看作是門外漢。

即便應聘者徹底搞砸了某個編程問題,面試考官也可能會提出不同的問題並會容忍應聘者在某個問題上的失誤。再退一步說,就算某次面試徹底失敗,你也有機會在其它面試上補救。

我的一位同事(一個項目的技術負責人)最近面試了一個人,在開始面試時他覺得面試者的交流方式存在問題,因此開始表現的相當不友好。但經過了整個面試過程後,面試者證明了自身的能力,而我的那位同事也成了那位面試者最堅定的支持者。在過去的一年中,我從未見過這位同事如此強烈的支持哪位面試者。

所以,因此就算面試進展不順,也務必堅持到底不要放棄。

⑸ 各位在職的unity3d程序員都是怎麼面試的

考試考的c++,然後讓我寫了幾個簡單的碰撞檢測,然後老大問我,線性代數怎麼樣,我說還行,然後又讓我寫了個如何確定角色正方向的的簡單的演算法思路。最後問我會不會unity,我說不會。問我,如何便利圖找最短路徑,有沒有思路,我來了句迪傑斯特拉演算法(其實怎麼算的我完全不會),然後就錄用了。

⑹ 面試c++程序員(游戲開發方向的)在技術面試階段和人事部面試階段的時候人家問還有什麼要問等問題。

問問工作崗位,問你進去工作之後的職責,也可以問一下公司的激勵制度和師徒制度,最後問問公司的氛圍和待遇。

⑺ hr面試程序員問什麼問題,程序員在面試的時候的注意事項

01 和優秀開發者溝通
如果你本身沒有編程背景,那就盡量找到一些優秀的開發人員給你指點迷津。
02 問專業的問題

1. 簡要介紹一下你自己以及你最近在做的項目嗎?
作用:這個問題可以讓你更好地了解你的候選人,而談論近期工作能了解他對工作的熱情和奉獻。

2. 其他時間有別的項目要做嗎
作用:鑒於你的項目的時間長短和工作復雜程度,你可能只想找一個能完全投入到這個項目的人。但是很多程序員都會同時兼顧好幾個項目,你要確保彼此雙方的需求是什麼。

3. 你是怎麼看待自己的身份的?開發?產品經理?還是二者都是?
作用:理想的回答一般是『二者都是』, 但是你要認真評估每個候選人可能給你團隊帶來的有利和不利影響。產品經理可以幫助設計新的功能和交互,但是你也需要足夠的開發才能跟上方向從而建構你想要的內容。

4. 你會如何管理一個程序員團隊?
作用:這個問題可以幫你了解候選人的領導能力和風格。

5. 告訴他們公司想要的人是怎樣的。
作用:直截了當地告訴對方你的期望。像工作時間,項目長短,目標等等,這些都是對方很想知道的。就像你評價他是否適合公司一樣,對方也會評價你的公司是否適合他。

03 去合適的地方招聘
你不能指望天上會掉下個好程序員給你,微軟和谷歌的優秀程序員也不會自己蹦到你跟前。你的機會在於,很多這樣的程序員都擁有或追求商業想法。
你可以多去一些網站、活動大賽等地方探索發掘,這比你在社交網站上找到他們的運氣要大得多。

· 編程大賽
編程大賽就是程序員高手們雲集在一起,合作共同完成一個軟體的開發。
猿圈會定期舉辦此類招聘編程大賽,幫助企業挑選優質人才,提高企業品牌僱主形象。

· 開放性源代碼貢獻者
一些網站比如GitHub,提供在線代碼存儲庫, 程序員可以自由對開源項目貢獻自己的代碼。
所以,在招聘之前,你可以先去這種網站上找一找有潛力的候選人。

· 大學
· 軟體開發大會
盡可能多的去參加一些和你的產品相關的軟體開發大會。

· 技術博客
你能根據他們的博客判斷他們的技術技能、解決問題的能力以及寫作和溝通能力。

04 沒通過編程測試,堅決不錄用

你只能記住一條原則,那必須是,沒有讓候選人參加編程測試之前,千萬不能決定錄用與否。

通常情況下,出於項目的緊迫,我們會傾向於選擇看起來靠譜的第一個程序員,但是不拿到他的編程測試結果,不要沖動地下offer。

我也是個不懂代碼的HR,但是我善於利用各種各樣的工具,前段時間發現了一個猿圈測評的工具,我用它測試程序員候選人,通過測試結果判斷是否值得邀約來面試,這個我覺得很贊,你可以試試看

⑻ 你要面試一個程序員,應該問他什麼問題

首先面試程序員分有沒有經驗
面試沒有經驗的程序員就隨便問問點ssm,ssh五大框架問題,多線程什麼的,再問問是否會點前端技術
有經驗就看看他的簡歷,問他簡歷項目上的問題,可以圍繞著簡歷上的項目問,通過他的回答涉及到的技術點之類的,拓展出去問其他的

⑼ 求程序員面試題

Java面試題集集錦

1.C++或Java中的異常處理機制的簡單原理和應用。

當JAVA程序違反了JAVA的語義規則時,JAVA虛擬機就會將發生的錯誤表示為一個異常。違反語義規則包括2種情況。一種是JAVA類庫內置的語義檢查。例如數組下標越界,會引發IndexOutOfBoundsException;訪問null的對象時會引發 NullPointerException。另一種情況就是JAVA允許程序員擴展這種語義檢查,程序員可以創建自己的異常,並自由選擇在何時用 throw關鍵字引發異常。所有的異常都是java.lang.Thowable的子類。

2. Java的介面和C++的虛類的相同和不同處。

由於Java不支持多繼承,而有可能某個類或對象要使用分別在幾個類或對象裡面的方法或屬性,現有的單繼承機制就不能滿足要求。與繼承相比,介面有更高的靈活性,因為介面中沒有任何實現代碼。當一個類實現了介面以後,該類要實現介面裡面所有的方法和屬性,並且介面裡面的屬性在默認狀態下面都是 public static,所有方法默認情況下是public.一個類可以實現多個介面。

3. 垃圾回收的優點和原理。並考慮2種回收機制。

Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程序員最頭疼的內存管理的問題迎刃而解,它使得Java程序員在編寫程序的時候不再需要考慮內存管理。由於有個垃圾回收機制,Java中的對象不再有「作用域」的概念,只有對象的引用才有「作用域」。垃圾回收可以有效的防止內存泄露,有效的使用可以使用的內存。垃圾回收器通常是作為一個單獨的低級別的線程運行,不可預知的情況下對內存堆中已經死亡的或者長時間沒有使用的對象進行清楚和回收,程序員不能實時的調用垃圾回收器對某個對象或所有對象進行垃圾回收。回收機制有分代復制垃圾回收和標記垃圾回收,增量垃圾回收。

4. 請說出你所知道的線程同步的方法。

wait():使一個線程處於等待狀態,並且釋放所持有的對象的lock。

sleep():使一個正在運行的線程處於睡眠狀態,是一個靜態方法,調用此方法要捕捉InterruptedException異常。

notify():喚醒一個處於等待狀態的線程,注意的是在調用此方法的時候,並不能確切的喚醒某一個等待狀態的線程,而是由JVM確定喚醒哪個線程,而且不是按優先順序。

Allnotity():喚醒所有處入等待狀態的線程,注意並不是給所有喚醒線程一個對象的鎖,而是讓它們競爭。

5. 請講一講析構函數和虛函數的用法和作用。

6. Error與Exception有什麼區別?

Error表示系統級的錯誤和程序不必處理的異常,

Exception表示需要捕捉或者需要程序進行處理的異常。

7. 在java中一個類被聲明為final類型,表示了什麼意思?

表示該類不能被繼承,是頂級類。

8. 描述一下你最常用的編程風格。

9. heap和stack有什麼區別。

棧是一種線形集合,其添加和刪除元素的操作應在同一段完成。棧按照後進先出的方式進行處理。

堆是棧的一個組成元素

10. 如果系統要使用超大整數(超過long長度范圍),請你設計一個數據結構來存儲這種超大型數字以及設計一種演算法來實現超大整數加法運算)。

public class BigInt()

{

int[] ArrOne = new ArrOne[1000];

String intString="";

public int[] Arr(String s)

{

intString = s;

for(int i=0;i
{

11. 如果要設計一個圖形系統,請你設計基本的圖形元件(Point,Line,Rectangle,Triangle)的簡單實現

12,談談final, finally, finalize的區別。

final—修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個類不能既被聲明為 abstract的,又被聲明為final的。將變數或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變數必須在聲明時給定初值,而在以後的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。

finally—再異常處理時提供 finally 塊來執行任何清除操作。如果拋出一個異常,那麼相匹配的 catch 子句就會執行,然後控制就會進入 finally 塊(如果有的話)。

finalize—方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要的清理工作。這個方法是由垃圾收集器在確定這個對象沒有被引用時對這個對象調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。finalize() 方法是在垃圾收集器刪除對象之前對這個對象調用的。

13,Anonymous Inner Class (匿名內部類) 是否可以extends(繼承)其它類,是否可以implements(實現)interface(介面)?

匿名的內部類是沒有名字的內部類。不能extends(繼承) 其它類,但一個內部類可以作為一個介面,由另一個內部類實現。

14,Static Nested Class 和 Inner Class的不同,說得越多越好(面試題有的很籠統)。

Nested Class (一般是C++的說法),Inner Class (一般是JAVA的說法)。Java內部類與C++嵌套類最大的不同就在於是否有指向外部的引用上。具體可見http: //www.frontfree.net/articles/services/view.asp?id=704&page=1

註: 靜態內部類(Inner Class)意味著1創建一個static內部類的對象,不需要一個外部類對象,2不能從一個static內部類的一個對象訪問一個外部類對象

第四,&和&&的區別。

&是位運算符。&&是布爾邏輯運算符。

15,HashMap和Hashtable的區別。

都屬於Map介面的類,實現了將惟一鍵映射到特定的值上。

HashMap 類沒有分類或者排序。它允許一個 null 鍵和多個 null 值。

Hashtable 類似於 HashMap,但是不允許 null 鍵和 null 值。它也比 HashMap 慢,因為它是同步的。

16,Collection 和 Collections的區別。

Collections是個java.util下的類,它包含有各種有關集合操作的靜態方法。

Collection是個java.util下的介面,它是各種集合結構的父介面。

17,什麼時候用assert。

斷言是一個包含布爾表達式的語句,在執行這個語句時假定該表達式為 true。如果表達式計算為 false,那麼系統會報告一個 Assertionerror。它用於調試目的:

assert(a > 0); // throws an Assertionerror if a <= 0

斷言可以有兩種形式:

assert Expression1 ;

assert Expression1 : Expression2 ;

Expression1 應該總是產生一個布爾值。

Expression2 可以是得出一個值的任意表達式。這個值用於生成顯示更多調試信息的 String 消息。

斷言在默認情況下是禁用的。要在編譯時啟用斷言,需要使用 source 1.4 標記:

javac -source 1.4 Test.java

要在運行時啟用斷言,可使用 -enableassertions 或者 -ea 標記。

要在運行時選擇禁用斷言,可使用 -da 或者 -disableassertions 標記。

要系統類中啟用斷言,可使用 -esa 或者 -dsa 標記。還可以在包的基礎上啟用或者禁用斷言。

可以在預計正常情況下不會到達的任何位置上放置斷言。斷言可以用於驗證傳遞給私有方法的參數。不過,斷言不應該用於驗證傳遞給公有方法的參數,因為不管是否啟用了斷言,公有方法都必須檢查其參數。不過,既可以在公有方法中,也可以在非公有方法中利用斷言測試後置條件。另外,斷言不應該以任何方式改變程序的狀態。

18,GC是什麼? 為什麼要有GC? (基礎)。

GC是垃圾收集器。Java 程序員不用擔心內存管理,因為垃圾收集器會自動進行管理。要請求垃圾收集,可以調用下面的方法之一:

System.gc()

Runtime.getRuntime().gc()

19,String s = new String("xyz");創建了幾個String Object?

兩個對象,一個是「xyx」,一個是指向「xyx」的引用對象s。

20,Math.round(11.5)等於多少? Math.round(-11.5)等於多少?

Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;

21,short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1 += 1;有什麼錯?

short s1 = 1; s1 = s1 + 1;有錯,s1是short型,s1+1是int型,不能顯式轉化為short型。可修改為s1 =(short)(s1 + 1) 。short s1 = 1; s1 += 1正確。

22,sleep() 和 wait() 有什麼區別? 搞線程的最愛

sleep()方法是使線程停止一段時間的方法。在sleep 時間間隔期滿後,線程不一定立即恢復執行。這是因為在那個時刻,其它線程可能正在運行而且沒有被調度為放棄執行,除非(a)「醒來」的線程具有更高的優先順序 (b)正在運行的線程因為其它原因而阻塞。

wait()是線程交互時,如果線程對一個同步對象x 發出一個wait()調用,該線程會暫停執行,被調對象進入等待狀態,直到被喚醒或等待時間到。

23,Java有沒有goto?

Goto—java中的保留字,現在沒有在java中使用。

24,數組有沒有length()這個方法? String有沒有length()這個方法?

數組沒有length()這個方法,有length的屬性。

String有有length()這個方法。

25,Overload和Override的區別。Overloaded的方法是否可以改變返回值的類型?

方法的重寫Overriding和重載Overloading是Java多態性的不同表現。重寫Overriding是父類與子類之間多態性的一種表現,重載Overloading是一個類中多態性的一種表現。如果在子類中定義某方法與其父類有相同的名稱和參數,我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調用子類中的定義,對它而言,父類中的定義如同被「屏蔽」了。如果在一個類中定義了多個同名的方法,它們或有不同的參數個數或有不同的參數類型,則稱為方法的重載(Overloading)。Overloaded的方法是可以改變返回值的類型。

26,Set里的元素是不能重復的,那麼用什麼方法來區分重復與否呢? 是用==還是equals()? 它們有何區別?

Set里的元素是不能重復的,那麼用iterator()方法來區分重復與否。equals()是判讀兩個Set是否相等。

equals()和==方法決定引用值是否指向同一對象equals()在類中被覆蓋,為的是當兩個分離的對象的內容和類型相配的話,返回真值。

27,給我一個你最常見到的runtime exception。

ArithmeticException, ArrayStoreException, BufferOverflowException, BufferUnderflowException, CannotRedoException, CannotUndoException, ClassCastException, CMMException, , DOMException, EmptyStackException, IllegalArgumentException, IllegalMonitorStateException, IllegalPathStateException, IllegalStateException,

ImagingOpException, IndexOutOfBoundsException, MissingResourceException, NegativeArraySizeException, NoSuchElementException, NullPointerException, ProfileDataException, ProviderException, RasterFORMatException, SecurityException, SystemException, UndeclaredThrowableException, UnmodifiableSetException, UnsupportedOperationException

28,error和exception有什麼區別?

error 表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如說內存溢出。不可能指望程序能處理這樣的情況。

exception 表示一種設計或實現問題。也就是說,它表示如果程序運行正常,從不會發生的情況。

29,List, Set, Map是否繼承自Collection介面?

List,Set是

Map不是

30,abstract class和interface有什麼區別?

聲明方法的存在而不去實現它的類被叫做抽象類(abstract class),它用於要創建一個體現某些基本行為的類,並為該類聲明方法,但不能在該類中實現該類的情況。不能創建abstract 類的實例。然而可以創建一個變數,其類型是一個抽象類,並讓它指向具體子類的一個實例。不能有抽象構造函數或抽象靜態方法。Abstract 類的子類為它們父類中的所有抽象方法提供實現,否則它們也是抽象類為。取而代之,在子類中實現該方法。知道其行為的其它類可以在類中實現這些方法。

介面(interface)是抽象類的變體。在介面中,所有方法都是抽象的。多繼承性可通過實現這樣的介面而獲得。介面中的所有方法都是抽象的,沒有一個有程序體。介面只可以定義static final成員變數。介面的實現與子類相似,除了該實現類不能從介面定義中繼承行為。當類實現特殊介面時,它定義(即將程序體給予)所有這種介面的方法。然後,它可以在實現了該介面的類的任何對象上調用介面的方法。由於有抽象類,它允許使用介面名作為引用變數的類型。通常的動態聯編將生效。引用可以轉換到介面類型或從介面類型轉換,instanceof 運算符可以用來決定某對象的類是否實現了介面。

31,abstract的method是否可同時是static,是否可同時是native,是否可同時是synchronized?

都不能

32,介面是否可繼承介面? 抽象類是否可實現(implements)介面? 抽象類是否可繼承實體類(concrete class)?

介面可以繼承介面。抽象類可以實現(implements)介面,抽象類是否可繼承實體類,但前提是實體類必須有明確的構造函數。

33,啟動一個線程是用run()還是start()?

啟動一個線程是調用start()方法,使線程所代表的虛擬處理機處於可運行狀態,這意味著它可以由JVM調度並執行。這並不意味著線程就會立即運行。run()方法可以產生必須退出的標志來停止一個線程。

34,構造器Constructor是否可被override?

構造器Constructor不能被繼承,因此不能重寫Overriding,但可以被重載Overloading。

35,是否可以繼承String類?

String類是final類故不可以繼承。

36,當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

不能,一個對象的一個synchronized方法只能由一個線程訪問。

37,try {}里有一個return語句,那麼緊跟在這個try後的finally {}里的code會不會被執行,什麼時候被執行,在return前還是後?

會執行,在return前執行。

38,編程題: 用最有效率的方法算出2乘以8等於幾?

有C背景的程序員特別喜歡問這種問題。

2 << 3

39,兩個對象值相同(x.equals(y) == true),但卻可有不同的hash code,這句話對不對?

不對,有相同的hash code。

40,當一個對象被當作參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這里到底是值傳遞還是引用傳遞?

是值傳遞。Java 編程語言只由值傳遞參數。當一個對象實例作為一個參數被傳遞到方法中時,參數的值就是對該對象的引用。對象的內容可以在被調用的方法中改變,但對象的引用是永遠不會改變的。

41,swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?

switch(expr1)中,expr1是一個整數表達式。因此傳遞給 switch 和 case 語句的參數應該是 int、 short、 char 或者 byte。long,string 都不能作用於swtich。

42,編程題: 寫一個Singleton出來。

Singleton模式主要作用是保證在Java應用程序中,一個類Class只有一個實例存在。

一般Singleton模式通常有幾種種形式:

第一種形式:定義一個類,它的構造函數為private的,它有一個static的private的該類變數,在類初始化時實例話,通過一個public的getInstance方法獲取對它的引用,繼而調用其中的方法。

public class Singleton {

private Singleton(){}

//在自己內部定義自己一個實例,是不是很奇怪?

//注意這是private 只供內部調用

private static Singleton instance = new Singleton();

//這里提供了一個供外部訪問本class的靜態方法,可以直接訪問

public static Singleton getInstance() {

return instance;

}

}

第二種形式:

public class Singleton {

private static Singleton instance = null;

public static synchronized Singleton getInstance() {

//這個方法比上面有所改進,不用每次都進行生成對象,只是第一次

//使用時生成實例,提高了效率!

if (instance==null)

instance=new Singleton();

return instance; }

}

其他形式:

定義一個類,它的構造函數為private的,所有方法為static的。

一般認為第一種形式要更加安全些

Hashtable和HashMap

Hashtable繼承自Dictionary類,而HashMap是Java1.2引進的Map interface的一個實現

HashMap允許將null作為一個entry的key或者value,而Hashtable不允許

還有就是,HashMap把Hashtable的contains方法去掉了,改成containsvalue和containsKey。因為contains方法容易讓人引起誤解。

最大的不同是,Hashtable的方法是Synchronize的,而HashMap不是,在

多個線程訪問Hashtable時,不需要自己為它的方法實現同步,而HashMap

就必須為之提供外同步。

Hashtable和HashMap採用的hash/rehash演算法都大概一樣,所以性能不會有很大的差異。

43.描述一下JVM載入class文件的原理機制?

44.試舉例說明一個典型的垃圾回收演算法?

45.請用java寫二*樹演算法,實現添加數據形成二*樹功能,並以先序的方式列印出來.

46.請寫一個java程序實現線程連接池功能?

47.給定一個C語言函數,要求實現在java類中進行調用。

48、編一段代碼,實現在控制台輸入一組數字後,排序後在控制台輸出;

49、列出某文件夾下的所有文件;

50、調用系統命令實現刪除文件的操作;

51、實現從文件中一次讀出一個字元的操作;

52、列出一些控制流程的方法;

53、多線程有哪些狀態?

54、編寫了一個伺服器端的程序實現在客戶端輸入字元然後在控制台上顯示,直到輸入"END"為止,讓你寫出客戶端的程序;

55、作用域public,private,protected,以及不寫時的區別

答:區別如下:

作用域 當前類 同一package 子孫類 其他package

public √ √ √ √

protected √ √ √ ×

friendly √ √ × ×

private √ × × ×

不寫時默認為friendly

56、ArrayList和Vector的區別,HashMap和Hashtable的區別

答:就ArrayList與Vector主要從二方面來說.

一.同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的

二.數據增長:當需要增長時,Vector默認增長為原來一培,而ArrayList卻是原來的一半

就HashMap與HashTable主要從三方面來說。

一.歷史原因:Hashtable是基於陳舊的Dictionary類的,HashMap是Java 1.2引進的Map介面的一個實現

二.同步性:Hashtable是線程安全的,也就是說是同步的,而HashMap是線程序不安全的,不是同步的

三.值:只有HashMap可以讓你將空值作為一個表的條目的key或value

57、char型變數中能不能存貯一個中文漢字?為什麼?

答:是能夠定義成為一個中文的,因為java中以unicode編碼,一個char佔16個位元組,所以放一個中文是沒問題的

⑽ 面試一年經驗的程序員,會問哪些問題

在當今的互聯網大軍中,不少人順應時代潮流,選擇了PHP開發作為自己的發展方向,進行PHP培訓。技術很重要,面試技巧也很重要,講一下:Java程序員面試失敗的5大原因。

一、說得太少

尤其是那些開放式的問題,如「請介紹下你自己」或「請講一下你曾經解決過的復雜問題」。面試官會通過你對這些技術和非技術問題的回答來評估你的激情。他們也會通過模擬團隊氛圍和與你的交流互動來判斷你的經驗和能力。

所以,僅僅只用兩三句話來回答不但不能顯示出你對這個專業的興趣,還會讓整個面試過程顯得非常無聊。如果你不能很好地說明你的經驗、成就和技能可以給企業帶來的價值,那麼你的競爭力毫無疑問就高不起來。所以,你需要對一些最常見的開放式問答作充分的准備,學會推銷自己。

二、說得太多

不斷地說,不斷地說,卻並沒有什麼實質性的內容。換句話說,就是廢話連篇,言之無物。如果你不能簡潔的解釋問題,那麼面試官就會懷疑你在工作時的表現是不是也會像你的談話一樣拖泥帶水?可以先問問面試官,確定是否真的需要詳細解釋。

解釋也是一門藝術,關鍵是確定重點,如果需要的話再深入到細節。當聊到業務的時候,就應該從業務的角度看問題,不要涉及任何技術術語。學會用簡潔明了的方式解釋問題。如果你能時刻把握主旨,那麼這一點也不是問題。

三、回答不出一些必知的基本技術問題

面試不是技術競賽,不是看誰答對的問題多,但是有一些「必須知道」的核心Java和Web基礎知識,你不能不知。例如,對於Java開發人員

1)不知道「==」和equals()之間的區別。

2)不知道equals()和hashCode()方法被隱式調用時的約定。

3)不知道OO的概念和設計原則。

4)不能很好地處理多線程。

5)不知道如何在HTTP客戶端與伺服器端之間保持狀態。

6)不能解釋曾投入精力過的應用程序的高層體系結構。

7)不知道SQL。

四、既寫不好簡單的代碼,又回答不出如何解決棘手的問題

作為一個開發人員,你應該根據自己的經驗水平,來針對給定的問題和情況編寫代碼。特別是如果碰到一個比較棘手的問題,那麼即使你還沒有解決方案,也應該將你的思路講給面試官聽。當然這在面試時會讓人特別緊張,尤其是在還有時間限制的情況下,但是你也必須保持冷靜,至少應該說明你將如何試著去解決問題的方法。

五、糟糕的禮儀和態度

遲到,不適宜的著裝,抖手抖腳,沒有眼神接觸,過於緊張,沒有提問,顯示不出對這份職業的興趣,「我什麼都知道」的高傲態度,貶低你的現在和以前的僱主,遇到技術問題時煩躁不安或者垂頭喪氣,為自己找理由而不是虛心接受錯誤,與面試官發生爭執,不好的肢體語言,隨波逐流而沒有自己的看法,過於呆板,撒謊,嗓門太大,無法成為良好的傾聽者,等等。

提示:面試官要找的不是技術明星,而是實實在在具備了合適的技術技能、軟技能、端正的態度以及能為企業獲取利益、全面的專業人才。因此,不妨先研究下想要應聘的機構,深入了解其工作規范以調整回答問題時的方向和重點。將每一場面試都當作免費的培訓課程,積極調整心態,不但能達到一個雙贏的局面,還可以減少緊張的情緒,從而獲得更好的表現。這樣即使你並沒有得到那份工作,也可以由此學到點什麼,獲得進步。

閱讀全文

與create游戲開發程序員面試題相關的資料

熱點內容
linux查看路由表命令 瀏覽:505
高手程序員使用什麼筆記本 瀏覽:439
ios壓縮圖片app 瀏覽:838
排隊論pdf 瀏覽:520
python調用無參函數 瀏覽:798
主管開除女程序員 瀏覽:712
雲伺服器轉售 瀏覽:540
壓縮空氣漏氣量怎樣計算 瀏覽:102
手機app是怎麼跳轉的 瀏覽:664
學編程的重要性 瀏覽:24
程序員去按摩 瀏覽:739
奧迪手機控車app怎麼添加愛車 瀏覽:4
收磚機石獅編程培訓廠家 瀏覽:761
吉里吉里2安卓模擬器怎麼用 瀏覽:818
編譯器將匯編代碼 瀏覽:681
電路板加密錯誤 瀏覽:21
java自動機 瀏覽:363
相機連拍解壓 瀏覽:31
linuxssh服務重啟命令 瀏覽:330
茂名氫氣隔膜壓縮機 瀏覽:47