2008-09-10 25 views
7

當面試大學合作社/實習生或最近的畢業生時,它有一個Java編程問題,他們可以在15分鐘內在白板上完成。有沒有人有這樣的好問題的例子?我曾經在一次採訪中被問到的一個C++問題是寫一個字符串到整數函數,這個問題與我正在尋找示例的問題的級別一致。好的15分鐘的Java問題問最近的大學畢業生

回答

6

一些東西,已經出現了對SO:

  • IsPalindrome(字符串s)
  • ReverseWordsInString(字符串s): 「我知道的Java」 - > 「的Java知道我」

  • 乘以一個向量與矩陣(可以這樣做OO風格?)
  • 是彈簧想到其他的東西

  • echo(是的,UNIX工具的一個簡單的克隆)
  • cat(15分鐘應足夠,應該剔除掉無能)
  • int個簡單的容器。像ArrayList獎金問題:泛型?
6
  1. 寫一個函數交換使用指針變量值(真可憐那些將下降爲這個)
  2. 寫一個程序,發現在XY平面兩點間的距離。利用班級來存儲積分。
  3. 演示如何使用java中的多態性作爲簡單的程序。
  4. 編寫一個程序打印前n個素數。
  5. 編寫一個程序,用另一個文件替換文件中的字符串。
+4

1有點難,因爲Java沒有指針(或者它是一個技巧問題?) – 2010-08-17 18:43:58

9

它有什麼理由必須在白板上?就個人而言,我寧願坐在鍵盤前面讓他們寫一些代碼。我們的測試曾經是一個簡單的100(IIRC)行Swing文本編輯器。然後,我們用一些簡單的方法分解它,有些則使得代碼不能編譯,並且有些更加微妙,給候選人一半的時間和一些問題修復。

即使你不能讓他們做任何事情手,確保你給他們一些明確的技術問題。在另一輪採訪中,出現了令人驚訝的最新畢業生,這些畢業生只是流行語 - 吐出IDE的騎師,所以他們看起來可以在白板前揮舞雙手談論Enterprise-this和SOA-,但是當給出一個簡單的Java基礎多選題考試,詢問關於finalprotected意味着什麼的恐怖嚴重。

+0

儘管文本編輯器測試不是15分鐘,這聽起來像是一個很好的測試。這更像是你在現實生活中會做什麼,而不是寫作算法:維護其他人可能做的代碼。 – palto 2010-08-15 16:52:09

7

我一直認爲算法問題應該是語言不可知的。如果要測試學生的Java級別,請關注語言:其關鍵字(從常見的關鍵字(如靜態到更具異國情調的關鍵字,如易失性),泛型,重載,裝箱/拆箱等可變標準庫。

0

我同意Nicolas關於從實際語言問題分離算法問題。

你可能要考慮的一件事是給他們一些簡單的算法問題,他們可以在白板上寫出僞代碼(例如「向我解釋Bubble sort並向我展示它的僞代碼」

然後,一旦他們已經證明他們的算法知識,你可以移動到Java的問題。由於一些人的工作比在白板前電腦前好,我會給他們一些簡單的,但利用其他們可以在30分鐘內使用與您在公司使用的IDE相同的IDE來實現這種知識,這樣,如果他們聲稱瞭解IDE,您也可以瞭解他們對這些IDE的瞭解程度

0
  1. 編寫一個合併兩個排序列表的函數 - 在極限處停止。尋找簡單的優化和正確的邊界檢查/子列表調用。告訴他們T實現了compareTo。

    公開名單<牛逼>合併(名單<牛逼>一個,列表<牛逼>二,INT限制)

  2. 編寫返回true的功能,如果在陣列和給定的總和任意兩個整數。讓他們試着做比使用某種集合或數據結構的n平方更好的方法。

    公共布爾containsSum(INT [] NUMS,INT總和)

0

我會避免問他們會已覆蓋了本科班的問題。我會更加好奇他們應用他們學到的一切來解決複雜的技術問題的能力。如果您的企業對IT解決方案有特殊需求,那麼您可以將其作爲起點。您可以詢問候選人他們將使用哪些技術以及使用這些技術與替代技術的優缺點。隨着討論的進行,你可以感受到他們的技術技巧,解決問題的技巧,人際交往能力等等。我認爲避免指導他們是很重要的,即使在尷尬的時刻也是如此。這對剔除白癡很重要。

+0

但是你真的想要清除那些忘記了他們在本科階段學到的所有基礎知識的人!不要以爲任何人都可以寫FizzBu​​zz。 – Jimmy 2008-11-12 03:21:26

1

如果你不知道要問他們什麼問題,那麼可能是你不是正確的採訪他們在Java中。在所有應有的尊重下,我討厭人們在面試中問我自己不知道答案的問題。大部分問題的答案都可以在幾秒鐘內通過Google搜索找到。如果有人有Java的經驗,他們肯定會知道抽象類,接口等,因爲他們是核心構建塊。如果他/她不知道'易變'關鍵字 - 很重要。

+0

我想我同意你的一般觀點,但聽起來提問者也有資格回答這個問題。果然,我不得不去查找Java中的WTF volatile,我在J2EE中工作爲日常工作。 – MattGWagner 2010-05-07 17:18:51