臨近畢業,學生都在找工作,而一般單位對于JAVA工程師要求還是比較高的,起碼懂編程語言。今天,小編就和大家聊聊面試java工程師,面試官一般問什么問題?
如果可以的話,“建議以一個和面試官交流的心態去面試“。而且普通面試大部分問答都是有一些套路的。
面試的過程中,肯定會有答不上來的時候,這個時候,坦然的說不知道,就行了;或者再說出來點你知道的,例如思路。“重點“答不出來的時候一定要淡定,你和面試官是平等的!反過來讓你問面試官,他也肯定有答不上來的!
java基礎必考,線程、集合(list、map、linklist、array,什么無key遍歷map啊,鏈表倒置啊,這幾個東西的數據結構和插入查詢特性啊,線程創建方式和同步啊)相關必問。最好能說清楚常見的設計模式、要能手寫一個單列模式。
“框架“:主要說你熟練的,會問一些,但是一般都比較基礎,只要找;除非,你說你看過這個框架的源碼,剛好面試官也比較了解。
“數據庫“可能會問你都用過什么,最好有一個用的熟練的,沒事兒去配置一下主從數據庫費不了多少時間,然后就好答這個問題了。sql,一般是必考的,分組查詢,排序,連結查詢。很可能會讓你手寫sql語句。我還遇到了一個讓你查前多少行的,以及不用框架實現分頁查詢的。
“源碼“其實源碼沒有那么的高大上,即使你說你熟練源碼,剛好面試官也熟悉,他最多也只能問問你這框架從啟動到配置完成,從接收請求,到處理完成再返回的“流程“然后再問一下,你從這些源碼里學到了什么?這個問題,建議去百度(我都是臨面試了才去百度這些有套路的問題)。
“前端“你要是像我一樣,囂張到簡歷寫的連前端你都會不少,(不過現在確實很多公司的招聘后端的要求也要會一些前端)那就很可能要多面你一會兒了,再問問你簡歷里寫的用過的框架,手寫幾串js的代碼啊,還有可能會通過js代碼考察下對DOM概念的理解。正則表達式也是有可能的。
一般算法和數據結構是必考的,操作系統也經常被問。如果是校招的話,筆試中還會有一些排列組合啊,語文表達啊,思維拓展啊(你咋不去高中招?高中剛畢業的時候比較符合需求!!),其次,筆試過了還會有好幾輪面試,不管你說你扣過源碼,還是跟過還可以的項目,都會被往深里問,再往深里問,再再往深里問!
下邊是一個簡單的面試記錄
問:說說你的突出點
答:java基礎扎實(這個慌說的次數多了,現在說起來都沒感覺了,哈哈),框架使用熟練(這個慌說了你們也發現不了,所以也沒啥感覺),熟悉Tomcat源碼,springMVC源碼和結構。
問:如果想要統計springMVC每一個訪問時長,放到log文件里,你在哪里做這個統計?為什么?
答:在preHandle攔截器里記錄訪問開始的時間,在postHandle里判斷是哪個訪問,計算訪問時間并存儲。
問:在posthandler里計算,并存儲是吧。答:是。
問:為什么?
答了一個錯誤答案,然后又是一頓鄙視。,,
再問:用一個什么變量存?ThreadLocal?還是一個函數內部局部變量,?
答:線程內,(其實是在猜)。
問:為什么?你不要猜,也不用在乎我的反應,無論你答什么我都會問你為什么。
答:函數內變量可能會不能覆蓋整個訪問的歷程,,一頓鄙視,然后突然反應過來,不對,我說的有問題,外層函數是可以的,那就放在函數內局部變量里,節省資源。
問:如果我想把計算結果存到log里,在哪里做這個事情?
答:(悠長的停頓)在posthandler處理結束,返回請求之前
問:為什么?
答:不占用處理請求的資源,(錯誤答案,已經慌亂)
問:確定?
答:不確定,,,停頓,,不對,還是會占用資源。
問:然后呢
答:(不說話了,,,)(后來想想,這事兒應該另起一個線程去做)
(鄙視狀,,,)
問:恩,說說Tomcat
答:(內心:幸虧沒問tomcat優化,JVM優化,,不過,說說?說啥啊?難道說說這個干啥用的?還是說說哪個公司出的?說這些會不會直接趕人啊,,,就這樣過了最少一分鐘,哈哈)然后我就說了下tomcat的結構,和啟動過程。
接著問:Tomcat和里面的Servlet是一個進程還是多個進程,
答:一個進程內
一頓鄙視,再問:為什么,,,??
答:因為我覺得進程是分配資源的基本單位,一般來講,一個應用就是一個進程。
問:你確定?
(內心:大爺的,估計已經掛了,那我還怕個球,,,于是乎,坐直,平視,語氣和神態突然就平靜了)
答:確定。
問:你大學什么專業?學過操作系統嗎?
答:計算機科學與技術,當然學過,我清楚的記得這一點,進程是分配資源的基本單位,不過,可能太久了,記不清了(其實內心是:你長的美,你說的都對)。
問:ok,一個應用可以啟多個進程嗎?
答:不可以
問:(鄙視狀)確定?
答:(平靜狀)不太確定
問:呵呵
答:麻煩您給講講吧,我不太懂。
問:一個應用當然是可以啟多個線程的,更何況還有跨應用的線程調用,資源也是可以動態分配的,,,(當時沒聽太懂,也記不清了。)。末了來一句,難道你就沒打開過你的資源管理器看過嗎?
答:當然看過,不過都是卡了才看,看哪個程序占用太高,給結束了。(內心:看過,但是跟這個問題有毛關系嗎??)
上邊是倆個長問題,還有一些其他的,例如:
問:你覺得要做一個厲害的程序員應該具備哪些特點?
這個就是一些,FQ啊,工具啊,總結啊,交流啊什么的;比如說,善用google,要至少對一個跨平臺的工具很了解,善于學習最新的技術,善于掌握有力的工具,多逛各大社區,善于總結。(我就隨便一寫,找工作的話,要提前準備類似問題。)
問:我看你學了這么多東西,但是好像沒有認真的去思考過為什么,你有沒有想過當你記憶達到一個上限時你還能學什么?你還能干什么?
這個當然是要反駁的,我說我當然有思考,然后問你思考的啥,然后答當時就想知道Tomcat到springMVC的銜接是怎么銜接的,然后被鄙視:那你直接打幾個斷點調試一下不完了嗎,java的調試不是很強嗎?(貌似這個他也不太確定。而我也不知道斷點打到哪去,更不用提怎么調試,哈哈)。
問:我看你這寫的有一個了解分布式處理,分布式處理是什么?我怎么沒聽過。(這個就是一個概念問題,不重要。)
以上就是小編面試java工程師時,面試官一般問的問題,希望每個面試的小伙伴都能找到合適的工作!
-
工程師
+關注
關注
59文章
1569瀏覽量
68510 -
JAVA
+關注
關注
19文章
2966瀏覽量
104707
發布評論請先 登錄
相關推薦
評論