華為Java社招面試經(jīng)歷詳解【已拿到offer】
華為Java社招面試(已拿到offer)
之前8月底華為cloudsop部門打電話叫我要不要面試,當(dāng)時(shí)正處于換工作的期間,于是就把簡(jiǎn)歷發(fā)給華為hr,人事審核后經(jīng)過(guò)一些列面試、機(jī)試,最終順利拿到了offer,出于未來(lái)職業(yè)規(guī)劃的考量,本人手里還有其他的一些offer,還沒有定下來(lái),順便在此分享一下我面試華為的一些經(jīng)歷。
華為作為通訊行業(yè)的龍頭,還是非常看中學(xué)歷的,樓主可能正卡在了不是特別優(yōu)秀的一類985、211院校,導(dǎo)致最終定級(jí)不是特別理想,但總的來(lái)說(shuō)華為的面試不是很難,主要分為電話技術(shù)面、機(jī)試、技術(shù)綜合面、hr綜面。
1.電話技術(shù)面試
主要問(wèn)了我最近的項(xiàng)目,中間也有少部分底層框架的原理,大概四十分鐘。
1.MyBastis如何映射,MyBatis原理。 2.如何實(shí)現(xiàn)高可用的,你的系統(tǒng)怎么達(dá)到高可用的? 3.redis底層實(shí)現(xiàn),redis是如何更新緩存的? 4.集合框架有哪些是線程安全的?哪些是非安全的? 5.開發(fā)中你們?nèi)绾芜M(jìn)行單元測(cè)試?覆蓋率如何?自動(dòng)化測(cè)試怎么達(dá)到? 6.SpringMvc執(zhí)行流程,java常用設(shè)計(jì)模式。 7.eureka怎么保證可用性,及底其層實(shí)現(xiàn),與zookeeper有什么區(qū)別? 8.高并發(fā)相關(guān)的問(wèn)題,concurrent相關(guān)包。 9.為什么使用redis做緩存而不是其他的消息隊(duì)列入kafka,以及項(xiàng)目的穩(wěn)定性。 10.事務(wù)一定會(huì)鎖表嗎? 11.java并發(fā)和線程同步,同步機(jī)制,鎖具體解釋一下。 12.redis集群搭建,分詞算法、redis主從同步機(jī)制。 13.常用的線程池,threadlocal有什么用,多線程并發(fā)解決辦法。
2.技術(shù)綜合面試
現(xiàn)場(chǎng)面試,正趕上華為本月最后一個(gè)周末加班,約在了早上10點(diǎn),到現(xiàn)場(chǎng)后發(fā)現(xiàn)有很多人都來(lái)面試,等了差不多40分鐘,去到一間有很多面試官的房間,一人一張桌子,面前立著一把椅子,像是流水面試。這個(gè)技術(shù)館看著差不多三十幾歲,頭發(fā)花白,說(shuō)話相當(dāng)快,像在趕時(shí)間,中間沒有再問(wèn)我技術(shù)框架上的內(nèi)容,一直圍繞我的項(xiàng)目討論,讓我手繪我的項(xiàng)目交互圖,相關(guān)表設(shè)計(jì),用到的算法,當(dāng)時(shí)是怎么考慮的,主要還是高可用,高性能方面問(wèn)的比較多。
3. HR面試
接著技術(shù)面試完,出來(lái)等了差不多10分鐘,就又進(jìn)到剛才的房間,去到另一張桌子的hr面前,面我的hr看著比剛剛的技術(shù)官還要老成,據(jù)他自己說(shuō)自己做了十幾年的hr,(頭發(fā)…顯然是沒什么頭發(fā)了,難道hr也要加班到凌晨?)中間無(wú)非就是各種背景調(diào)查,為了開出適宜的薪資包,我還是將目前的薪資狀況跟他和盤托出了,(沒辦法這是個(gè)老鳥?。。┤A為的年終獎(jiǎng)和考評(píng)直接掛鉤,所以一定要注意你最近在上一家公司的評(píng)級(jí),還有hr面試過(guò)程中的問(wèn)題,都不是空穴來(lái)風(fēng),他都有做標(biāo)記,所以一定要誠(chéng)實(shí),切勿包裝的離譜,談offer的話,可能是我之前面試的還算不錯(cuò),hr還是相當(dāng)?shù)乃斓?,我要的薪水也是和最終的差不太多。
4.準(zhǔn)備材料
hr在最終定薪需要提供,最近三個(gè)月的工資流水/截圖,畢業(yè)證、學(xué)位證、四六級(jí)證書照片、身份證正反面照片,這是一般公司都要的吧。
5.網(wǎng)上填寫個(gè)人資料
接著就是登錄hr給你郵件發(fā)的連接,登錄進(jìn)去填寫一堆的個(gè)人信息, 包括學(xué)歷,工作經(jīng)歷,項(xiàng)目經(jīng)驗(yàn),華為親屬信息,這個(gè)類似一份華為版的簡(jiǎn)歷。
6.機(jī)試題
這一通過(guò)后,還要做一份華為社招的機(jī)試題,出自??腿A為社招的題庫(kù),題目難易程度據(jù)網(wǎng)上的人說(shuō),有難有易,基本上都是一些字符串,集合比較基礎(chǔ)的算法的題,做之前可以再牛客上面先練一下。
下面分享一下本人在機(jī)試種遇到的。
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.Scanner;
/**
* 五張牌,每張牌由牌大小和花色組成,牌大小2~10、J、Q、K、A,牌花色為紅桃、黑桃、梅花、方塊四種花色之一。 判斷牌型:
* 牌型1,同花順:同一花色的順子,如紅桃2紅桃3紅桃4紅桃5紅桃6。
* 牌型2,四條:四張相同數(shù)字 + 單張,如紅桃A黑桃A梅花A方塊A + 黑桃K。
* 牌型3,葫蘆:三張相同數(shù)字 + 一對(duì),如紅桃5黑桃5梅花5 + 方塊9梅花9。
* 牌型4,同花:同一花色,如方塊3方塊7方塊10方塊J方塊Q。
* 牌型5,順子:花色不一樣的順子,如紅桃2黑桃3紅桃4紅桃5方塊6。
* 牌型6,三條:三張相同 + 兩張單。
* 牌型7,其他。
* 說(shuō)明:
* 1)五張牌里不會(huì)出現(xiàn)牌大小和花色完全相同的牌。
* 2)前面的牌型比后面的牌型大,如同花順比四條大,依次類推。
*/
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
while (sc.hasNextLine()) {
String s = sc.nextLine();
list.add(s);
if (list.size() == 5) {
int type = getCardType(list);
System.out.println(type);
list.clear();
}
}
}
private static int getCardType(ArrayList<String> list) {
int size = list.size();
ArrayList<String> numList = new ArrayList<>();
HashSet<String> numSet = new HashSet<>();
ArrayList<String> colorLsit = new ArrayList<>();
HashSet<String> colorSet = new HashSet<>();
for (int i = 0; i < list.size(); i++) {
String num = list.get(i).split(" ")[0];
String color = list.get(i).split(" ")[1];
if (num.equals("J")) {
numList.add("11");
numSet.add("11");
} else if (num.equals("Q")) {
numList.add("12");
numSet.add("12");
} else if (num.equals("K")) {
numList.add("13");
numSet.add("13");
} else if (num.equals("A")) {
numList.add("14");
numSet.add("14");
} else {
numList.add(num);
numSet.add(num);
}
colorLsit.add(color);
colorSet.add(color);
}
int temp = 7;
//同花順或者同花
if (colorSet.size() == 1) {
Collections.sort(numList);
for (int i = 0; i < numList.size() - 1; i++) {
if (Integer.parseInt(numList.get(i + 1)) - 1 == Integer.parseInt(numList.get(i))) {
if (i == numList.size() - 2) {
temp = 1;
}
continue;
} else {
if (temp > 4) {
temp = 4;
}
}
}
}
//四條或葫蘆
if (numSet.size() == 2) {
Collections.sort(numList);
if (numList.get(0) != numList.get(1) || numList.get(numList.size() - 1) != numList.get(numList.size() - 2)) {
if (temp > 2) {
temp = 2;
}
} else {
if (temp > 3) {
temp = 3;
}
}
}
//三條
if (numSet.size() == 3) {
if (temp > 6) {
temp = 6;
}
}
//順子
if (colorSet.size() > 1) {
Collections.sort(numList);
for (int i = 0; i < numList.size() - 1; i++) {
if (Integer.parseInt(numList.get(i + 1)) - 1 == Integer.parseInt(numList.get(i))) {
if (i == numList.size() - 2) {
temp = 5;
}
continue;
} else {
break;
}
}
}
return temp;
}
}
下面是我從其他朋友筆試中搜集到的,希望有幫助
題目一
package com.hw.loy;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
* 給定一個(gè)正整數(shù),給出消除重復(fù)數(shù)字以后最大的整數(shù)
* 輸入描述:
* 正整數(shù),注意考慮長(zhǎng)整數(shù)
* 輸出描述:
* 消除重復(fù)數(shù)字以后的最大整數(shù)
* 示例1
* 輸入
* 423234
* 輸出
* 432
*/
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String sc = scanner.next();
List list = new ArrayList();
for (int i = 0; i < sc.length(); i++) {
list.add(sc.charAt(i));
}
for (int i = 0; i < list.size(); i++) {
for (int j = 0; j < i; j++) {
if (list.get(i).equals(list.get(j))) {
if (Integer.valueOf(list.get(j + 1).toString()) > Integer.valueOf(list.get(j).toString())) {
list.remove(j);
i--;
break;
} else {
list.remove(i);
i--;
break;
}
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.print(list.get(i));
}
System.out.println();
}
}
題目二
package com.hw.tiku;
import java.util.Scanner;
/**
* 骰子有6個(gè)面,現(xiàn)在用1,2,3,4,5,6分別代表一個(gè)骰子的左,右,前,后,上,下的初始位置,
* 用R代表向右滾動(dòng)一次,用L代表向左滾動(dòng)一次,可以向前翻轉(zhuǎn)(用F表示向前翻轉(zhuǎn)1次),
* 可以向后翻轉(zhuǎn)(用B表示向右翻轉(zhuǎn)1次),可以逆時(shí)針旋轉(zhuǎn)(用A表示逆時(shí)針旋轉(zhuǎn)90度),
* 可以順時(shí)針旋轉(zhuǎn)(用C表示逆時(shí)針旋轉(zhuǎn)90度),現(xiàn)從初始狀態(tài)開始,根據(jù)輸入的動(dòng)作序列,計(jì)算得到最終的狀態(tài)。
輸入描述:
初始狀態(tài)為:123456
輸入只包含LRFBAC的字母序列,最大長(zhǎng)度為50,可重復(fù)
輸出描述:輸出最終狀態(tài)
輸入例子:RA
輸出例子:436512
* @author loy
* @desc
* @date 2018/8/29
*/
public class ShaiZi {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String [] str_array = {"1","2","3","4","5","6"};
String s = scan.nextLine();
String [] s1 = s.split("");
int len = s.length();
for(int i = 0 ; i< s1.length;i++)
{
String ss = s1[i];
rv(str_array,ss);
}
int t = 0;
for( int i = 0; i <str_array.length;i++)
{
t = t*10 +Integer.valueOf(str_array[i]);
}
System.out.println(t);
}
static void rv(String [] str_array,String s)
{
switch(s) {
case "L":
change(str_array,0,5);
change(str_array,1,4);
change(str_array,0,1);
break;
case "R":
change(str_array,0,4);
change(str_array,1,5);
change(str_array,0,1);
break;
case "F":
change(str_array,2,5);
change(str_array,3,4);
change(str_array,2,3);
break;
case "B":
change(str_array,2,4);
change(str_array,3,5);
change(str_array,2,3);
break;
case "A":
change(str_array,0,2);
change(str_array,1,3);
change(str_array,0,1);
break;
case "C":
change(str_array,0,3);
change(str_array,1,2);
change(str_array,0,1);
break;
default:
break;
}
}
static void change(String [] str_array,int a,int b)
{
String temp = str_array[a];
str_array[a] = str_array[b];
str_array[b] = temp;
}
}
7.定薪定級(jí)
機(jī)試過(guò)后華為人力資源會(huì)對(duì)你之前的表現(xiàn)和你提供的薪資包,給你定你的職級(jí)和薪資,之后會(huì)按照這個(gè)職級(jí)和薪資以及你提供的材料提交上報(bào),等待領(lǐng)導(dǎo)確認(rèn),期間快的話2周,慢的話網(wǎng)上有的也有一個(gè)月甚至更久的,所以中途要耐心等待,先別急著辭職,因?yàn)槿A為的入職流程同樣很久,需要先預(yù)約東莞的醫(yī)院體檢,和報(bào)道日期等。
8.offer發(fā)放
本人差不多等了也有一個(gè)月左右,中途因?yàn)槁毤?jí)和薪資定的略高了一些,被駁回過(guò)一次,后面又重新定了一次級(jí)上報(bào)后才成功拿到offer,華為的薪資主要分為兩部分,當(dāng)月薪資 = 基本工資+績(jī)效工資,試用期都是6個(gè)月,貌似不打折,年終獎(jiǎng)嘛,這個(gè)是動(dòng)態(tài)的,需要看部門效益和個(gè)人來(lái)年的考核評(píng)定,評(píng)級(jí)為A為四個(gè)月,當(dāng)然這個(gè)是相當(dāng)難的,幾乎不太可能,評(píng)級(jí)為B是兩個(gè)月,多數(shù)情況是B,C的話不用我說(shuō)了吧,三年內(nèi)沒有nzj,不能漲工資,參與定級(jí)。。

華為是個(gè)非常偉大的公司,但也相當(dāng)壓抑,像一座圍城,里面的人想著出來(lái),外面的人拼了命往里沖,正因?yàn)槠浼影辔幕?32薪酬規(guī)則,致使它成為行業(yè)領(lǐng)先,不論你是否認(rèn)同其企業(yè)文化,最終它一定能給到你想要的回報(bào)。
注意:華為目前研發(fā)體系好像都搬去東莞松山湖華為基地,環(huán)境相當(dāng)不錯(cuò),深圳居住的話,早晚也有接駁車。
相關(guān)文章
- 這篇文章主要介紹了華為筆試算法面試題與參考答案,結(jié)合實(shí)例形式分析了基于C++的字符串轉(zhuǎn)換、判斷、排序等算法相關(guān)操作技巧,需要的朋友可以參考下2019-09-05
- 這篇文章主要介紹了華為16道經(jīng)典面試題與參考思路,總結(jié)分析了華為面試中遇到的經(jīng)典問(wèn)題,并提供了相應(yīng)的解答思路供讀者參考,需要的朋友可以參考下2019-08-01
這篇文章主要介紹了據(jù)說(shuō)華為的一道Java面試題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-29
面試者選擇一種編程語(yǔ)言,兩輪面試,每輪約45分鐘。其中面試者編程30分鐘,面試官提問(wèn)與討論15分鐘。今天小編給大家討論下華為面試改革加強(qiáng)考察編程難度大增,感興趣的朋友2019-05-14精選11道Java技術(shù)面試題及對(duì)應(yīng)答案【包含部分阿里和華為的面試題】
這篇文章主要為大家介紹了11道Java技術(shù)面試題及對(duì)應(yīng)答案,其中包含部分阿里和華為的面試題,總結(jié)分析了java常見的技術(shù)難點(diǎn)與java常見面試題,需要的朋友可以參考下2019-04-11
9月最新184道阿里、百度、騰訊、頭條Java面試題合集(小結(jié))
這篇文章主要介紹了9月最新184道阿里、百度、騰訊、頭條Java面試題合集,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-09-09
這篇文章主要介紹了阿里常用Java并發(fā)編程面試試題,總結(jié)分析了java并發(fā)編程的概念、原理、常見操作與相關(guān)注意事項(xiàng),需要的朋友可以參考下2019-09-04- 這篇文章主要介紹了銀行java開發(fā)筆試面試題13道,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-27

史上最全的Java面試題總匯(不再懼怕面試官,成功坐等offer)
這篇文章主要介紹了史上最全的Java面試題,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-08-07
Java研發(fā)京東4面:事務(wù)隔離+樂觀鎖+HashMap+秒殺設(shè)計(jì)+微服務(wù)
這篇文章主要介紹了Java研發(fā)京東4面:事務(wù)隔離+樂觀鎖+HashMap+秒殺設(shè)計(jì)+微服務(wù),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-07-24







