java作爲面試官如何提問

來源:瑞文範文網 4.1K

作爲面試官如果要面試一個java員,那麼該如何提問呢?下面是本站小編給大家整理的java作爲面試官如何提問,供大家參閱!

java作爲面試官如何提問
java作爲面試官如何提問

1、連串式提問

即人力資源主考官向面試者提出一連串相關的問題,要求應試者逐個回答。這種提問方式主要是考察面試者的反應能力、思維的邏輯性和條理性。

例如:“你在過去的工作中出現過什麼重大失誤?如果有,是什麼?從這件事本身你吸取的教訓是什麼?如果今後在遇到此類情況,你會如何處理?”

回答這個問題,首先要保持鎮靜,不要被一連串的問題嚇住,要聽清主考官問了哪些問題,這些問題一般都是相關,要回答後一個必須以前一個問題的回答爲基礎,這就更要求應試者聽清題目及其順序,逐一回答。

2、開放式提問

所謂開放式提問,就是指提出的問題應聘者不能使用簡單的“是”或“不是”來回答,而必須另加解釋才能回答圓滿。因此,主考官提出的問題如果能引發面試者給予詳細的說明,則符合“開放式提問”的要求。面試的提問一般都應該用開放式的提問,以便引出應試者的思路,真實考察其水平。

那麼,什麼樣的題目是開放式的題目,以下舉幾個的例子:

你在大學期間,從事過那些社會工作?

你的專業課開了多少門?你認爲這些課將對工作有什麼幫助嗎?

什麼原因促使你在二年內換了三次工作?這類提問的目的是爲了從應試者那裏獲得大量豐富的訊息;並且鼓勵應試者回答問題,避免被動。提問方式常用“如何……”“什麼……”“爲什麼……”“哪個……”等。

回答這類問題,應試者應該開闊思路,對主考官提出的問題儘量給予圓滿的回答,同時要注意做到條理清晰、邏輯性強,說理透徹,充分展現各方面的能力。這樣才能讓主考官儘可能多的瞭解自己,這是一個被錄用的前提條件,如果應試者不能被主考官所瞭解,就根本談不上被錄用。

3、非引導式提問

對於非引導式提問,應試者可以充分發揮,儘量說服自己心中的感受、意見、看法和評論。這樣的問題沒有“特定”的回答方式,也沒有“特定”的答案。

例如,主考官問:“請你談一談擔任學生幹部時的經驗。”這就是“非引導式”談話。主考官提出問題之後,便可靜靜的聆聽對方的敘述,而不必再有其他的表示。與引導式談話相比,非引導式談話中,應試者可以儘量多說,該說什麼就說什麼,因此可以提供豐富的資料。應試者的閱歷、經驗、語言表達能力、分析概括能力都得到了充分的展現,這樣有利於主考官作出客觀的評價。

4、封閉式提問

這是一種可以得到具體回答問題。這類問題比較簡單、常規,涉及範圍較小。關於下面的一些情況常用封閉式提問:工作經歷:包括過去的工作職位、成就、工作成績、個人收入、工作滿意與否以及調動原因。學歷:包括專業、學習成績、突出的學科、最討厭的學科、課程設置等。早期家庭狀況:包括父母的職業、家庭收入、家庭成員等。個性與追求:包括性格、愛好、願望、需求、情緒、目標設置與人生態度等。

Java程序員經典面試題

中能創建Volatile 數組嗎?

能,Java 中可以創建 volatile 類型數組,不過只是一個指向數組的引用,而不是整個數組。我的意思是,如果改變引用指向的數組,將會受到 volatile 的保護,但是如果多個線程同時改變數組的元素,volatile 標示符就不能起到之前的保護作用了。

tile 能使得一個非原子操作變成原子操作嗎?

一個典型的例子是在類中有一個long 類型的成員變量。如果你知道該成員變量會被多個線程訪問,如計數器、價格等,你最好是將其設置爲 volatile。爲什麼?因爲 Java 中讀取long 類型變量不是原子的,需要分成兩步,如果一個線程正在修改該 long 變量的值,另一個線程可能只能看到該值的一半(前 32 位)。但是對一個 volatile 型的 long 或double 變量的讀寫是原子。

tile 修飾符的有過什麼實踐?

一種實踐是用 volatile 修飾 long 和 double 變量,使其能按原子類型來讀寫。

double 和 long 都是64位寬,因此對這兩種類型的讀是分爲兩部分的,第一次讀取第一個 32 位,然後再讀剩下的 32 位,這個過程不是原子的,但Java 中 volatile 型的 long 或 double 變量的讀寫是原子的。volatile 修復符的另一個作用是提供內存屏障(memory barrier),例如在分佈式框架中的應用。簡單的說,就是當你寫一個 volatile 變量之前,Java 內存模型會插入一個寫屏障(writebarrier),讀一個volatile 變量之前,會插入一個讀屏障(read barrier)。意思就是說,在你寫一個volatile 域時,能保證任何線程都能看到你寫的值,同時,在寫之前,也能保證任何數值的更新對所有線程是可見的,因爲內存屏障會將其他所有寫的值更新到緩存。

tile 類型變量提供什麼保證?

volatile 變量提供順序和可見性保證,例如,JVM或者 JIT爲了獲得更好的性能會對語句重排序,但是 volatile 類型變量即使在沒有同步塊的情況下賦值也不會與其他語句重排序。 volatile 提供 happens-before 的保證,確保一個線程的修改能對其他線程是可見的。某些情況下,volatile 還能提供原子性,如讀 64 位數據類型,像 long 和 double 都不是原子的,但 volatile 類型的 double 和 long 就是原子的。

5.10個線程和2個線程的同步代碼,哪個更容易寫?

從寫代碼的角度來說,兩者的複雜度是相同的,因爲同步代碼與線程數量是相互獨立的。但是同步策略的選擇依賴於線程的數量,因爲越多的線程意味着更大的競爭,所以你需要利用同步技術,如鎖分離,這要求更復雜的代碼和專業知識。

6.你是如何調用wait方法的?使用if 塊還是循環?爲什麼?

wait 方法應該在循環調用,因爲當線程獲取到CPU 開始執行的時候,其他條件可能還沒有滿足,所以在處理前,循環檢測條件是否滿足會更好。下面是一段標準的使用 wait 和 notify 方法的代碼:

// The standard idiom for using the waitmethodsynchronized (obj) {while (condition does not hold)

; // (Releases lock, andreacquires on wakeup)... // Perform action appropriate to condition}

7.什麼是多線程環境下的僞共享(false sharing)?

僞共享是多線程系統(每個處理器有自己的局部緩存)中一個衆所周知的性能問題。僞共享發生在不同處理器的上的線程對變量的修改依賴於相同的緩存行。

Java 中應該使用什麼數據類型來代表價格?

如果不是特別關心內存和性能的話,使用BigDecimal,否則使用預定義精度的 double 類型。

8.怎麼將byte轉換爲String?

可以使用 String 接收 byte 參數的構造器來進行轉換,需要注意的點是要使用的正確的編碼,否則會使用平臺默認編碼,這個編碼可能跟原來的編碼相同,也可能不同。

我們能將int強制轉換爲byte 類型的變量嗎?如果該值大於byte 類型的範圍,將會出現什麼現象?

是的,我們可以做強制轉換,但是Java 中 int 是 32 位的,而 byte 是 8 位的,所以,如果強制轉化是,int 類型的高 24 位將會被丟棄,byte 類型的範圍是從 -128 到 128。

9.哪個類包含 clone 方法?是 Cloneable 還是 Object?

eable 是一個標示性接口,不包含任何方法,clone 方法在 object 類中定義。並且需要知道 clone 方法是一個本地方法,這意味着它是由 c 或 c++ 或其他本地語言實現的。

中++ 操作符是線程安全的嗎?

不是線程安全的操作。它涉及到多個指令,如讀取變量值,增加,然後存儲回內存,這個過程可能會出現多個線程交差。

a = a + b 與a += b 的區別+= 隱式的將加操作的結果類型強制轉換爲持有結果的類型。如果兩這個整型相加,如byte、short 或者int,首先會將它們提升到int 類型,然後在執行加法操作。如果加法操作的結果比a 的最大值要大,則a+b 會出現編譯錯誤,但是a += b 沒問題,如下:

byte a = 127;byte b = 127;b = a + b; // error : cannot convert from int to byteb += a; // ok(譯者注:這個地方應該表述的有誤,其實無論 a+b的值爲多少,編譯器都會報錯,因爲 a+b 操作會將 a、b 提升爲 int 類型,所以將 int 類型賦值給 byte 就會編譯出錯)。

Java程序員面試技巧注意事項

一 筆試

筆試這個環節是很容易,幾張試卷,一共也就十幾道題。一般由5至10個選擇題+2至5個論述題+1至2個編程題 組成。

平靜心態--瀏覽所有題目--開答

答題的時候,要先把自己會的快速的答上來,選擇題自然不多說了,論述題根據自己的理解大致說明一下,多少會給你自己加分的。

編程題其實也不難,出現機率最大的是寫一個關於某某設計模式的例子,而設計模式的編碼例子,出現最多的是單例模式、工廠模式和代理模式。

有時候也會有一些算法的編碼,一般是排序算法的編碼實現。

還有的筆試題,會有一些程序題,就是看程序,然後自己寫出運行結果,這樣的問題考察的是對java基礎知識的掌握,所以,有堅固的基礎是很重要的!

二 面試

開始會問些技術性的問題,總結出以下:

Struts1原理和Struts2原理以及區別和聯繫,在什麼項目中用過,有什麼體會。

spring的原理 aop和ioc機制,如何使用,在哪個項目用到過?有什麼體會。

簡要說明一下StrutsMVC和SpringMVC。

servlet的原理,生命週期。

socket 原理以及使用方式

Linux常用命令,shell編程介紹

Java常用算法

多線程、線程池、線程鎖等等

二叉樹、java數據結構

數據庫mysql、Oracle的優缺點以及使用方法和sql語句,問的多的是如果模擬分頁查詢和多表查詢

Java垃圾回收機制

敏捷開發的簡要說明,是否瞭解OOA/OOD/OOP 的含義

java加密與解密

java網絡通信、http協議要素

是否熟悉設計模式?簡要說一下自己所瞭解或者使用過的開發模式有哪些,在哪些場景中使用。

三 項目經驗的問題

簡要說一下你自己做過的自認爲很不錯的項目

你在項目中的職責,是否能夠勝任之前的任務安排

在項目中遇到的問題,你是怎麼解決的(一般這樣的問題,可以說是自己解決,但是要講明解決過程,一定要突出解決思路的靈活。也可以回答與同事討論解決,這樣可以讓面試官覺察到自己善於利用團隊資源,會給自己的團隊意識加分)

四 關於個人對團隊的看法以及個人的職業規劃

你怎麼看待個人與團隊,個人能力與團隊協作的聯繫。

在團隊合作中,最重要的是什麼?

如果團隊成員對於某個問題出現意見分歧,應該如何解決?

當對於上級有不滿的時候,應該怎麼解決?

團隊的發展如何與個人的規劃出現分歧,如何應對?

如何快速融入新的團隊,結交新的同事?

個人的職業規劃和職業目標,例如近兩年的目標,近五年的規劃。

如何看待企業文化,如何理解。

五 臨陣磨槍

面試前如果準備的不是很充分,還有很多沒有來得及試驗的,先放放,可以網上搜集一些經典的面試題,臨時背背,或者再去面試的路上看兩眼,說不定哪一眼就蒙上了,還可以起到緩解緊張的作用。當然想要拿到高薪是要付出努力地。

熱門標籤