华为初面+综合面试(Java技术面)附上面试题
華為面試整體流程大致分為筆試,性格測試,面試,綜合面試,回學校等結果。筆試來說,華為的難度較中等,選擇題難度和網易騰訊差不多。最后的代碼題,相比下來就簡單很多,一共3道題目,前2題很容易就AC,題目已經記不太清楚,不過難度確實不大。最后一題最后提交的代碼過了75%的樣例,一直沒有發現剩下的25%可能存在什么坑。
筆試部分太久遠,我就不怎么回憶了。直接將面試。
面試
如果說騰訊的面試是揮金如土(畢竟每個面試官都配了一件單獨的房間),那華為就是戒奢寧儉。兩個大會議廳坐滿了面試官,其中一個是初面面試區,另一邊是綜合面試區。初面區的面試官會來等待區一個一個叫我們過去面試。
面試桌采取一對一的形式,技術崗的面試通知短信雖然沒有通知說要帶簡歷,但是仍然帶了一份以免中途需要。(事實證明這是一個明智的選擇)
初面
初面面試官點到我的名字之后,我跟著面試官去他的那個位置。
面試流程和大多數互聯網公司流程差不多,首先讓自己介紹一個比較滿意的項目。(可能想通過這個項目了解我們的技能程度)在我面試準備時,其實我就糾結過這個問題。因為在我的項目中,有兩個項目是我比較滿意的,第一個主要做后臺,第二個主要做虛擬環境和數據交互。
“我有兩個項目是比較滿意的”,我先拋出這句話,希望面試官能夠給機會讓我將兩個項目都講一下,“我先講一下第一個我們當時做的換課平臺,當時本來是一個課程項目,但是我們在這個課程項目之上,結合當時校內急需換課這個需求,做出了這么一個換課平臺”,(首先提出項目目的),“然后這個項目大概實現了一個怎樣怎樣的功能”(拋出產品功能),“我在項目中主要負責后臺開發和數據庫交互功能”(說下在項目中的角色),“整個項目的架構大致如下。。。?!?#xff08;項目如何實現),我拿著紙筆在草稿上給面試官畫著后臺所有的系統架構和數據流動方式,同時將涉及到的重要點和技術點都說了下。
按照之前整理過的描述流程,我將整個換課平臺項目描述了一遍,中途偶爾面試官會問一下技術細節,不過都不是很難,可能因為我沒有使用“SSH”三大框架,而是使用純JSP進行的底層開發,所以面試官也不是太好提問。
不過有意思的是,在我介紹到項目中實現了實時聊天的時候,面試官提了兩個小問題,是我之前項目中沒碰到,而實際生產產品中可能遇到的問題:第一,我們的實時聊天是直接P2P,這樣需要雙方在同一子網下,那如果現在雙方不在同一子網下,外網某個移動端客戶A可以訪問后臺服務器B,這時候某個web端C同時也可以訪問服務器,這個時候A和C是互相不同的,現在如果我們仍然想讓他們通信怎么辦;第二,考慮大量用戶同時訪問后臺服務器的時候,該如何處理。
第一個我首先考慮到用服務器作為中介,但是當時老是想著可能打兩個聊天信息會對服務器造成壓力,所以一直很猶豫要不要用后臺服務器作為中轉,以及,作為中轉該如何操作。不過面試官稍微提醒我可以用服務器作為中轉,這時候我突然意識到只要服務器收到之后,立刻將消息轉發出去就可以了,不用走數據庫。這時候我也才一直到為什么我以前分析微信的聊天服務時,會將所有的文本消息和圖片消息發送到微信的后臺服務器,而且簡單的直接P2P對話,主要還是為了克服網絡問題
第二個不難,考慮云計算中的負載均衡,我大致說了下思路,選取一臺主機作為負載均衡調度機,其他的作為工作機即可。
第一個項目大概講了十分鐘,不知道是因為剛開始面試還是我項目確實對面試官的胃口。
第一個項目完了以后,面試官翻了下我的簡歷,“你要不說下你另一個項目?”我有blabla說了一通。
“有什么難點?”“項目中遇到過哪些問題?”
說完之后,初面基本也就結束了,整個過程十分和諧(可能我遇到的面試官比較nice)。最后讓我提一個問題,我大概問了下投遞的這個崗位今后具體會是什么工作,面試官大致給我講了下。(我投遞的云計算開發崗,PaaS方向)
綜合面試
初面完之后,面試官指引我去綜合面試區等待綜合面試。
綜合面試整體感覺和初面差不多,不過在綜合面試階段面試官首先問了我的籍貫,工作意向和理想的工作地點。
這里我表示并不挑,因為作為一個外省人,自從一個人出省讀書以后,就已經對在哪生活在哪上班沒有太多顧慮。
接著面試官問了我一些成績怎樣,家庭情況之類問題之后,開始問我的項目經驗。(雖然我不太明白,為什么綜合面試還會問初面中問過的關于項目經驗的問題)這里我就不在重復了,何處是一樣,我大致和面試官交流了一下我們的項目內容。
這一塊內容完成之后,感覺綜合面試整個流程已經基本結束了,面試官開始跟我介紹他們項目組的工作地點(深圳),工作內容,以及平常的一些工作,同時還給我介紹了一些將來工作中需要了解的基本知識——比如docker容器,k8s,部分國內國外的公有云的運行原理,讓我回去之后提前自學一下。(到這里我開始感覺有戲了)
其實,綜面和初面差別其實沒有太大,不過感覺這還是和面試官有關系,因為在我同行的隊友中,他們有的就被問到了一些比較底層的知識點比如Java有什么特點之類,也有被問及面向對象的優點等等(這些我都沒被問到)。
綜述
總的來說,其實華為的面試并沒有我想象中的困難(因為聽說華為今年縮招,我還以為面試會故意很難)。簡歷準備很重要, 尤其是項目經歷,個人blog,github這類容易加分的內容,最好能夠寫出來。兩場面試相比較同伴更加順利,有一定程度上就是簡歷給我加了分。
因為我面試的是云計算開發崗,所以我在項目中重新添加了很多Java相關的項目經歷,雖然不是很重要,但是至少能讓面試官從中了解我在Java方面有不少經驗。
面試時候不用太緊張,在之前騰訊面試中我就明顯很緊張,腦子一片發蒙,而這次華為面試就感覺稍微舒服很多,不知道是因為已經經歷過幾次面試,還是因為面試官帶動的比較好。
最后還挺重要的要能夠及時清楚地描述自己想說的內容。畢竟將來工作崗位中,少不了和同事的交流。另外清晰的描訴對面試官了解你,了解你的項目會很有幫助。因此,不論是在給面試官講述自己項目的時候,還是在回答面試官問題,亦或是想表達自己觀點的時候,都需要清晰的表達。如果一時語塞,可以嘗試停頓一下,整理下思路然后重新描述,只要面試官能夠理解你的話,一般有些停頓是不會有什么大礙。
最后的最后,希望能夠收到華為的offer吧_(:зゝ∠)_目前正在“排隊待錄取”中。
更新:
10月10號面試
10月17日收到進入資源池通知
10月24日收到offer短信,通知27日簽約(估計是兩方協議)。
27日簽約,同時決定結束持續了6個月的備考生活,準備工作。
為大家準備了必備的一些面試資料
Java多線程
- 說一說自己對于 synchronized 關鍵字的了解
- 說說自己是怎么使用 synchronized 關鍵字,在項目中用到了嗎
- 講一下 synchronized 關鍵字的底層原理
- 說說 JDK1.6 之后的synchronized 關鍵字底層做了哪些優化,可以詳細介紹一下這些優化嗎
- 談談 synchronized和ReenTrantLock 的區別
- 說說 synchronized 關鍵字和 volatile 關鍵字的區別
- 為什么要用線程池?
- 實現Runnable接口和Callable接口的區別
- 執行execute()方法和submit()方法的區別是什么呢?
- 如何創建線程池
- 介紹一下Atomic 原子類
- JUC 包中的原子類是哪4類?
- 講講 AtomicInteger 的使用
- 能不能給我簡單介紹一下 AtomicInteger 類的原理
多線程面試專題與答案
JVM的設計目標是提供一個基于抽象規格描述的計算機模型,為解釋程序開發人員提供很好的靈活性,同時也確保Java代碼可在符合該規范的任何系統上運行。JVM對其實現的某些方面給出了具體的定義,特別是對Java可執行代碼,即字節碼(Bytecode)的格式給出了明確的規格。這一規格包括操作碼和操作數的語法和數值、標識符的數值表示方式、以及Java類文件中的Java對象、常量緩沖池在JVM的存儲映象。這些定義為JVM解釋器開發人員提供了所需的信息和開發環境。Java的設計者希望給開發人員以隨心所欲使用Java的自由。
JVM
- 內存模型以及分區,需要詳細到每個區放什么。
- GC 收集器有哪些?CMS 收集器與 G1 收集器的特點。
- Minor GC 與 Full GC 分別在什么時候發生?
- 堆里面的分區:Eden,survival (from+ to),老年代,各自的特點。
- 簡述 java 垃圾回收機制?
- java 中垃圾收集的方法有哪些?
- 類加載器雙親委派模型機制?什么是類加載器,類加載器有哪些?
- 簡述 java 內存分配與回收策率以及 Minor GC 和Major GC
?
Redis
- 為什么要用 redis /為什么要用緩存?
- 為什么要用 redis 而不用 map/guava 做緩存?
- redis 和 memcached 的區別?
- 上述 Redis 分布式鎖的缺點?
- redis 常見數據結構以及使用場景分析
- redis 內存淘汰機制(MySQL里有2000w數據,Redis中只存20w的數據,如何保證Redis中的數據都是熱點數據?)
- redis 持久化機制(怎么保證 redis 掛掉之后再重啟數據可以進行恢復)?
- 緩存雪崩和緩存穿透問題解決方案?
- 如何解決 Redis 的并發競爭 Key 問題?
- 如何保證緩存與數據庫雙寫時的數據一致性?
Redis面試專題與答案
Spring一般是不可避免的,如果你的簡歷上注明了你會Spring Boot或者Spring Cloud的話,那么面試官也可能會同時問你這兩個技術,比如他可能會問你springboot和spring的區別。 所以,一定要謹慎對待寫在簡歷上的東西,一定要對簡歷上的東西非常熟悉。
另外,AOP實現原理、動態代理和靜態代理、Spring IOC的初始化過程、IOC原理、自己怎么實現一個IOC容器? 這些東西都是經常會被問到的。
Spring
- Spring Bean 的作用域?
- 如何用基于 Java 配置的方式配置 Spring?
- 請說下 Spring Bean 的生命周期?
- Spring Bean 的作用域之間有什么區別?
- 請舉例說明如何在 Spring 中注入一個 Java Collection?
- Spring 框架中有哪些不同類型的事件?
- Spring 框架中都用到了哪些設計模式?
- 開發中主要使用 Spring 的什么技術 ?
Spring面試專題與答案
“RabbitMQ?”“Kafka?”“RocketMQ?”...在日常學習與開發過程中,我們常常聽到消息隊列這個關鍵詞。這也是面試經常被問到的
由于篇幅限制小編,以上面試專題答案全部整理在一個pdf文檔里了,文檔里的詳解資料太全面,所以只把部分知識點截圖出來粗略的介紹,每個小節點里面都有更細化的內容!有需要的程序猿(媛)可以幫忙轉發+關注私信(面試)獲取哦
BATJ真實面試題
美團點評篇章
美團點評篇章
?
如何獲取?
關注我,添加下方圖中VX即可
?
總結
以上是生活随笔為你收集整理的华为初面+综合面试(Java技术面)附上面试题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TI 蓝牙4.0芯片 cc2540
- 下一篇: java中BOM是什么_Java处理带B