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