1. 程式人生 > >分享一線企業BAT面試的Java程式設計師建議

分享一線企業BAT面試的Java程式設計師建議

第一個問題:阿里面試問些什麼

參加阿里的社招面試,而社招不同於校招,問題的範圍其實是很隨機的。因為能參加一些比較知名的網際網路公司社招的人,70%以上都會有個3-5年的經驗。這倒不是說一兩年經驗的同學沒有機會進這些公司,而是因為這種公司,大部分情況下只招一些比較資深的開發和應屆生,而不招那些處於中間階段的人。而1-2年經驗的同學,往往就剛好處於這個尷尬的階段。

對於能有3-5年經驗的這部分人中,每個人的經歷又都不同,所擅長的點也不一樣,因此這就會導致每個人的問題和範圍都不太一樣。

很少說有哪個知名的網際網路公司,比如BAT、京東、360、搜狐、網易等這些公司,其社招面試還有固定的問題和模式,讓你可以像應屆生面試一樣,在面試前靠臨時抱佛腳度過這一關。

大部分公司在社招的時候,不光是阿里,其它公司也都一樣,基本上都分為兩個階段的提問。

第一個階段是主語言本身以及它的高階特性

第二個階段是講述自己的專案,並在中間穿插著問題

社招面試如何準備1主語言本身以及它的高階特性。

主語言當然就是你平日裡拿來賺錢的傢伙。

主語言很顯然是Java,那麼對於Java來說,它的語言本身以及它的高階特性,都有哪些比較容易在面試中問到呢?

一般情況下,主要有以下知識點很容易被問到。(PS:以下所列舉的,都是一些Java相對而言比較高階一點的知識點,因為這裡談的是社招,而不是校招)

1、Java的資料結構相關的類實現原理,比如LinkedList,ArrayList,HashMap,TreeMap這一類的。以下簡單模擬一個數據結構的連環炮。

比如,面試官先問你HashMap是不是有序的?

你肯定回答說,不是有序的。那面試官就會繼續問你,有沒有有順序的Map實現類?

你如果這個時候說不知道的話,那這個問題就到此結束了。如果你說有TreeMap和LinkedHashMap。

那麼面試官接下來就可能會問你,TreeMap和LinkedHashMap是如何保證它的順序的?

如果你回答不上來,那麼到此為止。如果你依然回答上來了,那麼面試官還會繼續問你,你覺得它們兩個哪個的有序實現比較好?

如果你依然可以回答的話,那麼面試官會繼續問你,你覺得還有沒有比它更好或者更高效的實現方式?

如果你還能說出來的話,那麼就你所說的實現方式肯定依然可以問你很多問題。

以上就是一個面試官一步一步提問的例子。所以,如果你瞭解的不多,千萬不要敷衍,因為可能下一個問題你就暴露了,還不如直接說不會,把這個問題結束掉,趕緊切換到你熟悉的領域。

2、Java併發包當中的類,它們都有哪些作用,以及它們的實現原理,這些類就是java.concurrent包下面的。與上面一樣,咱們也簡單的模擬一個併發包的連環炮。

比如面試官可能會先問你,如果想實現所有的執行緒一起等待某個事件的發生,當某個事件發生時,所有執行緒一起開始往下執行的話,有什麼好的辦法嗎?

這個時候你可能會說可以用柵欄(Java的併發包中的CyclicBarrier),那麼面試官就會繼續問你,你知道它的實現原理嗎?

如果你繼續回答的話,面試官可能會繼續問你,你還知道其它的實現方式嗎?

如果你還能說出很多種實現方式的話,那麼繼續問你,你覺得這些方式裡哪個方式更好?

如果你說出來某一個方式比較好的話,面試官依然可以繼續問你,那如果讓你來寫的話,你覺得還有比它更好的實現方式嗎?

如果你這個時候依然可以說出來你自己更好的實現方式,那麼面試官肯定還會揪著這個繼續問你。

為什麼說面試的時候要引導面試官,原因就在這了。因為面試官的提問很多時候都是有跡可循的,你如果抓住了他的軌跡,能夠猜到他下面很可能會問什麼,那你在回答的時候就可以往你想要談的方向去說。這樣面試時就會顯得更加從容,更加的遊刃有餘。

3、IO包和NIO包中的內容。這部分裡面NIO會是重點,IO包大部分都會比較熟悉,因此可能會直接略過,直接問你NIO的內容。

IO包和NIO包的內容相對來說不是很多,首先NIO模型要熟悉,特別是其中的selector一定要非常清楚它的職責和實現原理。其實NIO的核心是IO執行緒池,一定要記住這個關鍵點。有的時候,面試官可能也會問你IO包的設計模式(裝飾器模式),為什麼要這樣設計?

有的面試官還會問你有沒有更好的設計,這個時候如果你不知道請果斷說自己現在的水平有限,想不出來更好的設計,千萬不要信口開河,隨意YY。

4、Java的虛擬機器的內容。這部分主要包括三部分,GC、類載入機制,以及記憶體。

一個GC部分簡單的連環炮。

面試官可以先問你什麼時候一個物件會被GC?

接著繼續問你為什麼要在這種時候物件才會被GC?

接著繼續問你GC策略都有哪些分類?

你如果說出來了,繼續問你這些策略分別都有什麼優劣勢?都適用於什麼場景?

你繼續說出來了以後,給你舉個實際的場景,讓你選擇一個GC策略?

你如果選出來了,繼續問你,為什麼要選擇這個策略?

下面是關於類載入機制的簡單連環炮。

首先肯定是先問你Java的類載入器都有哪些?

回答了這些以後,可能會問你每個類載入器都載入哪些類?

說完以後,可能會問你這些類載入之間的父子關係是怎樣的?

你在回答的時候可能會提到雙親委派模型,那麼可以繼續問你什麼是雙親委派模型?

你解釋完了以後,可能會繼續問你,為什麼Java的類載入器要使用雙親委派模型?

你回答完以後,可能會繼續問你如何自定義自己的類載入器,自己的類載入器和Java自帶的類載入器關係如何處理?

再來一個關於記憶體的連環炮。

首先肯定就是問你記憶體分為哪幾部分,這些部分分別都儲存哪些資料?

然後繼續問你一個物件從建立到銷燬都是怎麼在這些部分裡存活和轉移的?

接著可能會問你,記憶體的哪些部分會參與GC的回收?

完事以後,可能還會問你Java的記憶體模型是怎麼設計的?

你回答了以後,還會繼續問你為什麼要這麼設計?

問完以後,還可能會讓你結合記憶體模型的設計談談Volatile關鍵字的作用?

你在談的時候,肯定會提到可見性,那麼接著可見性這三個字,還可以繼續問你併發的內容。

額外的加分項

上面兩個階段基本上是必問的,還有一些加分項。這些加分項中,有些內容面試官也會問你(比如TCP/IP協議、演算法),但更多的是會先問你瞭解不瞭解,你瞭解的話再繼續聊,不瞭解的話就直接略過了,不至於因為這種問題而直接把你打入地獄。

列舉一些加分項:

1、計算機系統原理。
2、網路通訊協議(TCP/IP,HTTP等)。
3、資料結構與演算法。
4、著名開源專案的原始碼。
5、你自己有很棒的開源專案。
6、你的個人部落格。
7、待評論區補充。
這幾項當中,

對於前1-3項,如果你之前就比較瞭解,只是由於時間問題忘記了的話,還是可以臨時抱佛腳一下的。

至於後面4-6項,就需要你日常的積累了,不是一時半會兒能做到的。如果你平日裡沒有積累,那麼後面這三個加分項只能拋棄了。
這裡寫圖片描述
這裡寫圖片描述
大家可以點選加入群每天免費講解:java高階架構:491389334
裡面有Java高階大牛直播講解知識點 走的就是高階路線
(如果你想跳槽換工作 但是技術又不夠 或者工作上遇到了
瓶頸 我這裡有一個JAVA的免費直播課程 講的是高階的知識點
基礎不好的誤入喲 只要你有1-5年的開發經驗
可以加群找我要課堂連結 注意:是免費的 沒有開發經驗誤入哦)
1、具有1-5工作經驗的,面對目前流行的技術不知從何下手,需要突破技術瓶頸的。
2、在公司待久了,過得很安逸,但跳槽時面試碰壁。需要在短時間內進修、跳槽拿高薪的。
3、如果沒有工作經驗,但基礎非常紮實,對java工作機制,常用設計思想,常用java開發框架掌握熟練的。
4、覺得自己很牛B,一般需求都能搞定。但是所學的知識點沒有系統化,很難在技術領域繼續突破的。

相關推薦

分享一線企業BAT面試Java程式設計師建議

第一個問題:阿里面試問些什麼 參加阿里的社招面試,而社招不同於校招,問題的範圍其實是很隨機的。因為能參加一些比較知名的網際網路公司社招的人,70%以上都會有個3-5年的經驗。這倒不是說一兩年經驗的同學沒有機會進這些公司,而是因為這種公司,大部分情況下只招一些比

Java程式設計師經驗分享:如何在面試中介紹自己的專案經驗?

在面試時,經過寒暄後,一般面試官會讓你介紹專案經驗。常見的問法是:“說下你最近的(或最拿得出手的)一個專案”。 可能不少程式設計師對此沒準備,說起來磕磕巴巴,甚至有人說出專案經驗從時間段或技術等方面和簡歷上的不匹配,這樣就會造成如下的後果: 第一印象就不好了,至少會感覺該候選人表述

一名拿到阿里offer的Java程式設計師分享三輪面試經驗

一、 面試流程: 我一共經歷三輪面試,兩輪技術面,一輪HR面。HR面結束次日拿到offer。 二、 前期準備 參加競賽。如果是為明年或後年面試做準備,可儘量參加阿里舉辦的相關競賽,作為自己的加分項。 鞏固自己的計算機基礎知識。阿里面試官在校招過程中,對基礎知識的紮實程度

想進BAT面試Java程式設計師 看完這個你們還覺得offer很難拿嗎???

阿里面試問些什麼?參加阿里的社招面試,而社招不同於校招,問題的範圍其實是很隨機的。因為能參加一些比較知名的網際網路公司社招的人,70%以上都會有個3-5年的經驗。這倒不是說一兩年經驗的同學沒有機會進這些公司,而是因為這種公司,大部分情況下只招一些比較資深的開發和應屆生,而不招

分享一下面試了幾個java程式設計師後的感受

原文:https://www.cnblogs.com/JavaArchitect/p/90323

五月的倉頡大神寫的 三年java程式設計師面試感悟 分享給大家

稀裡糊塗的敲了兩年程式碼,應該都算不上敲。因為某種原因迫使要換工作,發現知識及其不牢固並且不知道怎麼有條理的學習,所以就找些類似這樣的面試博文來看看學些啥。。。。 原文地址http://www.cnblogs.com/xrq730/p/5260294.html,轉載請註明出

2019準備了Java程式設計師最新招聘標準,阿里、京東等一線網際網路企業

最近面試了阿里、京東、美團、滴滴等大型網際網路公司,最終收到了美團offer,這次面試過後,我把面試過的公司的面試題做了一個整理。這篇文章是我憑回憶記錄的,面試題沒有順序,不分先後,接下來公佈我去阿里、京東、美團等一線網際網路公司的面試題: 一、阿里巴巴面試 1、開發中Java用得比較

面試技巧分享Java程式設計師的的通病,錯過必定後悔!

會做不會說,是大部分程式設計師的通病,即將入行的初學者也有類似的問題。 要在面試中表現好,不僅僅是技巧問題,也有心態問題,這篇文章在這方面做了不錯的講解。值得大家花時間閱讀和學習。 在面試時,經過寒暄後,一般面試官會讓介紹專案經驗 。常見的問法是,說下你最近的(或最拿得出手的)一個專案。

2018年4-5月java程式設計師最新面試總結分享

本人三年java工作經驗,下面是這兩個月的面試歷程,分享給大家!1、新東方  04_19技術面試,兩輪,地點:中關村地鐵站E口,鼎好大廈6層,面試官:龍彥俊,李經理    面試時間:2018_04_19_10:30(提前到了45分鐘)1、自我介紹2、專案介紹3、LiveCha

五月的倉頡大神寫的 三年java程式設計師面試感悟 值得分享給大家

原文地址http://www.cnblogs.com/xrq730/p/5260294.html,轉載請註明出處,謝謝! 前言 因為和同事有約定再加上LZ自己也喜歡做完一件事之後進行總結,因此有了這篇文章。這篇文章大部分內容都是面向整個程式設計師群體的,當然因為LZ本

準備了兩個月的阿里面經,寫給初中級Java程式設計師BAT 面試寶典

1. 簡介 筆者普通院校畢業,沒有光鮮亮麗的職業背景,憑著自己的激情和兩個月的準備最終拿到京東和阿里巴巴 Offer。下面就是作

面試BAT,我建議1-3年的Java程式設計師仔細看看這篇文章

此文的目的是為了督促自己去不斷學習,讓自己有更明確的方向去提升自己。以技能樹為基礎,以面試要點為大綱,我覺得比抓住什麼看什麼要更有

Java程式設計師想要進BAT實習 需要掌握哪些技術

對於實習生而言,其實很多公司要求都不是很高,畢竟對你的要求要對的起給你的工資水平,很多公司肯定都知道你本身的大體水平,不會期望太高,只是讓你邊學習邊工作,如果你足夠聰明伶俐,足夠好學,可能就多培養你一些。    不過不同水平的公司(BAT>TMD>其他優秀的

兩年JAVA程式設計師面試總結

前言 工作兩年左右,實習一年左右,正式工作一年左右,其實挺尷尬的,高不成低不就。因此在面試許多公司,找到了目前最適合自己的公司之後。於是做一個關於面試的總結。希望能夠給那些依舊在找工作的同學提供幫助。   面試 其實關於面試總結這塊,我也看過不少文章,但是大部分都是關於面試題以及面試中的問題

#大神的分享Java程式設計師的學習生涯中各個階段的建議

每一個新手在學習程式設計的時候,都會有一個迷茫期,不知道學這些知識能夠幹什麼,對於未來應該從事什麼樣的工作也很迷茫,所以作者特意寫了這一篇文章來給大家解釋。 如果有想學習java的程式設計師,可來我們的java學習扣qun:79979,2590免費送java的視訊教程噢!我整理了一份適合18年學

北京java程式設計師分享一個比努力更能決定人生的公式

  之前在羅振宇在公號上分享過一個“人生演算法”,他的公式是這樣的: 成就=核心演算法*大量重複動作的平方 這就是我要分享的比努力更能決定人生的公式。   如果說人生就是一條單向列車,想要更好更快的到達目的地,需要兩個因素。 核心演算法:即一條相對而

Java程式設計師拿著阿里offer去頭條面試,卻被執行緒池絆倒,難受!

之前有程式設計師網友在牛客網發表了自己在頭條的面試經驗和過程,小編拿過來和大夥分享下。 一面考演算法:兩個基礎題目,思路不難,考基本功,一個是連結串列相加,思路就是反轉 然後求和,另一個是多個有序陣列 歸併。 二面考應用和知識面:內容涉及 mysql 引擎,索引(mysql 這塊一

Java程式設計師面試如何超常發揮?

面試時,你是不是也遇到過這樣的情況,明明感覺自己表現發揮的很好,甚至進入到二面環節,到最後卻沒能拿不到入職offer,連自己“死在”哪塊都不清楚。現實工作中這樣的例子不在少數,究其原因就是面試是對個人素質的綜合考量,專案經驗+基本技術+個人潛力(也就是值不值得培養),這是Java程式設計師成

阿里架構師經驗分享Java程式設計師5年職業路線指南

  沒有沒免費的Java架構師進階資料領取?(文末提供獲取方法) 阿里架構師技術分享:分散式任務排程系統的實現 阿里架構師技術分享:承載千萬級併發的分散式架構設計思想 阿里架構師技術分享:併發程式設計之手寫阻塞式執行緒安全佇列 阿里架構師技術分享:面試

#一個JAVA程式設計師成長之路分享

我搞JAVA也有些日子了, 因為我比較貪玩,上進心不那麼強, 總是逼不得已為了高薪跳槽才去學習, 所以也沒混成什麼大牛, 但好在現在也已經成家立業, 小日子過的還算滋潤, 起碼頂得住一月近萬元的吃喝拉撒玩各種貸款信用卡 不為金錢過於發愁了。 我特別感謝當初貼吧遇見的那位大神, 雖然每個月也就聊那麼幾