預定的視頻面試時間是中午12點,不過面試官並無準時到,拖了大概5、6分鐘吧。Zoom會議上寫着xxxJava工程師初試。 html
面試官戴着口罩,並無露臉,看起來與我年齡相仿,感受很年輕。 面試
在我按着既有的思路進行自我介紹以後,他直接就開始對我進行技術面試了,直接就開始提問Java相關基礎知識了。和我上次的面試體驗不一樣,上次最初主要是針對項目進行了提問。 設計模式
因此我有點措手不及,其實從zoom上的「初試」和麪試官的年齡、神態能夠推測出來此次只是進行一個簡單的Java基礎技能的考覈。 數組
反觀在自我介紹的時候,我對本身的項目經歷和工做經歷介紹的有點太多了,講了大概有10多分鐘吧。這個在後面要調整一下,最初的自我介紹要簡單一點兒,後面若是問到了,能夠細說。 安全
這樣能夠把時間都留在技術交流上,我也不用口乾舌燥了。 jvm
下面是對一些面試題的回顧與總結,有一些答的很差甚至沒有回答出來。不過這些問題都囊括在了一些比較經典的面試題集裏面。函數
問: 項目中用到的jdk是什麼版本,在項目中有沒有用過jdk1.8?Jdk1.8有什麼新特性? 微服務
答:學習
參考文章:http://www.javashuo.com/article/p-dydpfbax-mz.html優化
問:瞭解微服務嗎?能說一下Spring Cloud組件有哪些嗎?
答:以前其實對這個有過了解,也看過相關文章,不過面試的時候卻一點兒也想不起來了,尷尬。面試官問我腦海中沒有這個組件的一幅圖嗎?其實還真沒有,可是這提醒了我經過圖來記憶不失爲一個好方法。
參考文章:https://blog.csdn.net/xunjiushi9717/article/details/91988479
問:講講Java中的線程。
答:其實這個問題問的比較大,比較寬泛,因此我一時還不知道從哪兒回答。因此咱們先看後面的一些問題,其實他們也和線程相關。
能夠從以上幾個方面去講,可是也能夠向面試官進一步詢問,要求其提出更具體一點兒的問題,這樣更好。
問:講講volatile關鍵字?
答:其實這是一個比較經典的問題,當初也看過相應文章,只回答了兩點,一個是被此關鍵字修飾的變量,具有可見性,便可以在線程間共享,並且能夠禁止指令重排序。
面試官進一步問到爲何能夠在線程間共享時,沒有回答上來。其實很簡單,是由於被volatile關鍵字修飾後,變量會被寫入主內存,其餘線程訪問時直接從主內存中取,不從本地內存中取,因此能夠共享。
至於爲何能夠禁止指令重排序,是由於被volatile修飾的變量,賦值後會創建一個內存屏障。
參考文章:http://www.javashuo.com/article/p-ahklihfi-gk.html
問:線程的實現方式有哪幾種?
答:這個也算是比較經典的問題了。最基礎的有兩種,繼承Thread類,重寫run方法; 實現Runnable接口,重寫run方法。第三種使用線程池。
可是這裏問到了線程池的參數大小是如何設置,這個沒回答上來。
參考文章:https://blog.csdn.net/oqkdws/article/details/80526370
問:Java中的鎖是否有了解?可否講一下。Synchronized與lock的區別?
答:前面的問題其實也問的比較大。
參考文章:http://www.javashuo.com/article/p-uultmizd-my.html
問:設計模式是否有了解?能不能講幾種工做中用到?
答:最簡單的有單例模式、工廠模式、模板模式、代理模式、發佈-訂閱模式,裝飾者模式。
其中單例模式問到了單例的寫法有哪幾種,答有兩種,懶漢式和餓漢式。而後又問到了有沒有安全點的寫法,這裏回答使用Synchronized關鍵字。不過關鍵字加在哪裏回答錯了,應該是加在new對象的代碼塊中,我卻回答加在方法上,這點面試官還重複問了兩次。
經典的雙重校驗鎖的單例模式代碼,必須會寫,以下:
public class SingleTon{ //1.構造函數私有化 private SingleTon(){}; //2.定義變量 private static volatile SingleTon s = null; //3.提供對外的訪問方法 public static SingleTon getSingleTon(){ if (s == null){ synchronized(SingleTon.class){ if(s == null){ s = new SingleTon(); } } } return s; } }
參考文章:http://www.javashuo.com/article/p-winvfiyl-my.html
其中提到了代理模式,這個要求結合業務場景講一講,這個沒有講清楚。
問:深拷貝與淺拷貝是否知道?可否講解一下?
答:這塊兒以前看過,因此還能說出幾句。
淺拷貝:對基本數據類型進行值傳遞,對引用數據類型進行引用傳遞般的拷貝,爲淺拷貝。
深拷貝:對基本數據類型進行值傳遞,對引用數據類型進行,建立一個新的對象,並複製其內容,爲深拷貝。
總結:整體表現不太好吧,準備不足,不少問題都沒答上來,後期對於這些問題還要重點學習與記憶。不過好在知道面試要問的老是那些問題,尚未超出範圍。其次要學會觀察面試官的角色與面試目標,不一樣的面試官考察與面試的內容可能會不一樣。