Java校招面試經驗匯總,看完直接跪服

美團技術一面20分鐘

晚7點,因為想到下周一才面試,我剛準備出去打個羽毛球,北京的電話就來了。面試官各種抱歉,說開會拖延了。

1、自我介紹

說了很多遍了,很流暢撿重點介紹完。

2、問我數據結構算法好不好

挺好的(其實心還是有點虛,不過最近刷了很多題也只能壯著膽子充胖子了)

3、找到單鏈表的三等分點,如果單鏈表是有環的呢

用快慢指針,一個走一步,一個走三步。如果有環,先判斷環在哪,找最后一個節點,然后用之前的無環的做法

4、講一下項目的架構

我重點講了MVC

5、說一下你熟悉的設計模式

我重點講了單例、工廠方法、代理

5、有沒有配置過服務器

這個我真不知道,都沒聽過呢,只能誠實說沒有,畢竟都沒法扯。

一面挺匆忙的,我估計面試官剛開完會還沒吃飯呢。他說讓我等,可能再找一個同事面我,可能就直接告訴我結果了。從一面面試官的聲音和口吻,我判斷他一定是個部門老大,問的設計偏多,后面hr告訴我他就是我要去的部門的老大。哈哈。

美團技術二面60分鐘,詳細問答

面完一面正準備出去打羽毛球,北京的電話又來了。(注定這周五參加不了球隊活動了!) 二面:跟一面比起來,二面面試官的聲音聽起來就像是搞技術開發的,果不其然,一個小時的純技術電話面試!面的特別全面!

1、Spring:有沒有用過Spring,Spring IOC、AOP機制與實現,Spring MVC

其實我挺不想被問到Spring的細節的,框架這些我都沒有復習不太記得了。所以我對面試官說Spring里面的一些比較重要的機制我理解的還不錯,然后我用一個實際的例子把我對IOC、AOP理解講了一下,他聽了說對,理解的不錯(難得遇到一個邊面試邊能給反饋的面試官,好開心)

Spring MVC其實我用過,我就對面試官講了我的項目中用到的Servlet,jsp和javabean實現的MVC,以及MVC各個模塊職責以及每個模塊是怎么聯系到一起的,最后我補充了一句我想SpringMVC的思想其實跟這個是一樣的(他說對的,嘿嘿有反饋真好)

2、多線程:怎么實現線程安全,各個實現方法有什么區別,volatile關鍵字的使用,可重入鎖的理解,Synchronized是不是可重入鎖

這里我就主要講了Synchronized關鍵字,還有并發包下面的一些鎖,以及各自的優缺點和區別。volatile關鍵字我主要從可見性、原子性和禁止JVM指令重排序三個方面講的,再講了一下我在多線程的單例模式double-check中用到volatile關鍵字禁止JVM指令重排優化。

3、集合:HashMap底層實現,怎么實現HashMap線程安全

我講了一下HashMap底層是數組加單鏈表實現,Node內部類,add的過程,Hash沖突解決辦法,擴容,三種集合視圖。HashMap線程安全的實現方式主要講了HashTable、ConcurrentHashMap以及Collections中的靜態方法SynchronizedMap可以對HashMap進行封裝。以及這三種方式的區別,效率表現。

4、JVM內存管理,GC算法,HotSpot里面的垃圾回收器、類加載

JVM內存主要分為五個區,哪些是線程共享的,哪些是線程獨享的,每個區存放什么。GC方面:怎么判斷哪些對象需要被GC,GC的方法,Minor GC與Full GC。HotSpot GC算法以及7種垃圾回收器,主要講了CMS和G1收集器。類加載:類加載的過程,Bootstrap classloader-ExtClassloader-AppClassloader,父類委托機制。

5、進程和線程的區別

從調度、并發性、擁有的資源和系統開銷四個方面回答的。

6、HTTP有沒有狀態,我說無狀態,怎么解決HTTP無狀態怎么解決HTTP無狀態其實就是怎么進行會話跟蹤,有四種方法:URL重寫、隱藏表單域、Cookie、Session。

7、Java IO,NIO,Java中有沒有實現異步IO

Java IO實現的是同步阻塞,它是怎么實現同步阻塞的。我拿了read()方法舉例來講的。NIO實現的是同步非阻塞,我詳細講了一下Selector中的select()方法輪詢說明它是如何實現多路復用IO的。然后對比了一下他們的效率。面試官可能看我對這一塊比較了解,又繼續問我Java中有沒有實現異步IO,我感覺好像沒有,但面試官說有,讓我想想,其實這里我并不清楚啦,所以我就對面試官講了一下我對Unix中異步IO模型的理解,然后說至于Java里面有沒有我真的不太清楚。(他居然笑了!說你理解是對的,Java里面有沒有不重要!哈哈)

8、前端會不會,Ajax是什么,Ajax實現原理

前端我只是會用一些js而已,用過jquery框架,問我Ajax全稱是啥,我猜是異步的js和xml。Ajax實現原理其實我也不懂,我就只簡單講了一下它通過XMLHttpRequest對象進行異步查詢,Ajax引擎在客戶端運行,減少了服務器工作量。

9、讓我設計一個線程池

因為我簡歷中有寫到我對多線程、并發這一塊理解比較好。所以他老問這方面的題。這個問題因為我之前看過ThreadPoolExecutor的源代碼,所以我就仿照那個類的設計思路來想的,詳細講了一下核心池、創建線程可以用工廠方法模式來進行設計、線程池狀態、阻塞隊列、拒絕策略這幾個方面。設計的還算比較周全。

10、講幾個設計模式,哪些地方用到了,為什么要用

單例模式,jdk中的getRuntime();工廠方法模式,ThreadPoolExcutor用到ThreadFactory;觀察者模式:java.util包下面的Observable和Observer。最后主要講了一下工廠方法模式的使用場景。

11、Mysql優化、索引的實現

我從數據庫設計優化和查詢優化兩方面講的。索引B+樹實現,InnoDB和MyISAM主鍵索引的實現區別,一個聚集一個非聚集。

12、事務的隔離級別

四種隔離級別,可能會出現哪些異常,mysql中默認級別。

13、有沒有用過Hibernate、mybatis、git

這個簡單講一下就好,分別是干什么的

14、Linux

我說這個本科學過,但是很久沒用,命令忘光了。他說沒事,考你幾個簡單的:cd、ls、dir(真的是簡單的)

15、算法題

1、從10萬個數中找最小的10個,時間復雜度分析(最大堆,考慮內存)

2、從一個有正有負數組中找連續子數組的最大和,時間復雜度分析(動態規劃)

3、滿二叉樹第i層有多少個節點,n層的滿二叉樹共有多少個節點

終于到我提問環節了

1、你們是什么部門(他說是核心部門,大數據研發)

2、我對高并發和負載均衡挺有興趣的,但是我平時在學校也沒有這個環境讓我在這方面有所體驗,那你建議我目前可以怎么學呢(他說這確實是不太好學,只能看些理論和別人的博客,以后工作中才能慢慢學)

3、中間件具體是做什么的,是解決高并發和負載均衡嗎(他說差不多是的,然后他說我們這個部門不是中間件,是大數據部門啊,我說恩我知道)

最后沒啥問題了,他讓我保持電話暢通。

這一面面完,口干舌燥,我一度懷疑他可能不知道我是在應聘實習生的崗位。有太多要總結的了,放在總結的地方一起講吧。

美團技術三面25分鐘

面試官說是他是另外一個部門的,需要進行交叉面試。

1、MySql優化

2、說下項目做了些什么,架構之類的

3、在collabedit上在線寫代碼,題目很簡單是編程之美上的原題,一個有序的整數數組,輸出兩個數,使它們的和為某個給定的值。之前做過很快寫好,然后給他講思路。他繼續問如果數組無序怎么辦,先排序。4、兩個文件,每個文件中都有若干個url,找出兩個文件中相同的url(用HashMap)

這一面挺簡單的,只是增加之前面試沒有過的在線寫代碼環節,collabedit后來我才了解,像facebook一些互聯網公司遠程面試都會用這個在線編輯器寫代碼,就是文本文檔寫,沒有提示,不能編譯運行,跟白板寫一樣。平時練練手就好。

美團技術HR四面30分鐘

三面面試官說他那就是終面,說我過了等hr聯系我。萬萬沒想到半小時后的hr面居然也是技術。

1、自我介紹,都四面了還自我介紹?!我還以為是單純的hr面,所以介紹的都是我的性格和生活方面的,結果并不是。

2、問項目,問的特別特別細,技術細節,還有遇到什么問題,怎么解決的,做項目有沒有人帶,怎么跟別人溝通的。

3、數據庫優化,如果數據庫一個表特別大怎么辦 數據庫優化我就講了之前講過很多遍的點,他問一個表特別大怎么辦:大表分小表,怎么實現:使用分區表

4、問研究生的科研題目,為什么選這個題,看了一些什么論文(細到問我那些論文是發表在什么期刊上的,作者是哪所學校的),為什么要選這個算法,怎么優化的,實驗結果怎么跟別人作對比的,為什么比別人的算法好(一個個問題不斷砸過來,我猜我說的那些專業名詞他應該不太懂,只是判斷一下是不是我做的而已。。)

5、確定實習時間 這一面確實讓我感到有壓迫感,項目是本科做的,挺久了,一些技術細節上也沒太總結,所以問細了我只能連想帶編,嘿嘿。科研方面倒還好,上個學期都在弄這個,一些算法的實現和改進、對比都還記得比較清楚,回答的挺流暢的,可能這真的就是技術型的hr面吧。

以上就是他的面試經歷了,他事后也找我聊過,總的來說,他表達的意思大概是:在進行過系統學習后一定要多刷面試題!!!

但其實在我看來,基礎知識是比較重要,但是并不會重要到對面試起決定性作用,因為對于企業來說,并不需要你能夠記住多少知識,哪怕你一點都記不住,但是能夠實現產品的需求,并能夠說明其中的來龍去脈,說白了就是看你的動手操作能力和業務能力。如果你是一個死記硬背,記下來一大堆理論知識,但是到實際操作的時候,那些理論知識往往只是紙上談兵,不過在面試前刷刷題還是有必要的。(有必要但不絕對)當然應屆生還是要多刷題的,因為應屆生在面試之前,大部分都有筆試,刷題還是很有必要的。

前段時間我閑下來也整理過一些面試題,現在把它分享出來,希望能對各位讀者老哥有些許的幫助。

(篇幅限制只能展示部分面試題及答案出來)感興趣的話下面會有獲取方式哈

數據庫

  • 請簡潔描述 MySQL 中 InnoDB 支持的四種事務隔離級別名稱,以及逐級之間的區別?
  • TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 數據類型上做什么?
  • MySQL 中有哪幾種鎖?
  • Redis 是什么?兩句話做一下概括
  • Redis 實現原理或機制
  • 什么是 MongoDB
  • MongoDB 的功能與適用場景
  • Redis、memcache、MongoDB 對比

面經分享:美團面試也太難了!4面美團終成Offer

開源框架

  • Spring IOC 如何實現
  • 說說 Spring AOP
  • Spring 的單例實現原理
  • Spring MVC 運行流程
  • 說說業務中,Netty 的使用場景
  • Netty 線程模型
  • 說說 Netty 的零拷貝

面經分享:美團面試也太難了!4面美團終成Offer

微服務

  • 前后端分離是如何做的
  • 微服務哪些框架
  • 說說 RPC 的實現原理
  • 說說 Dubbo 的實現原理
  • 說說 CAP 定理、 BASE 理論
  • 如何應對微服務的鏈式調用異常
  • 如何拆分服務

面經分享:美團面試也太難了!4面美團終成Offer

消息中間件

  • activemq 的幾種通信方式
  • activemq 如果數據提交不成功怎么辦(消息丟失)
  • activeMQ 發送消息的方式有哪些?
  • 為什么不應該對所有的 message 都使用持久化機制?
  • 向不存在的 exchange 發 publish 消息會發生什么?向不存在的queue 執行 consume 動作會發生什么?
  • RabbitMQ 中的 broker 是指什么?cluster 又是指什么?

面經分享:美團面試也太難了!4面美團終成Offer

樂觀鎖與悲觀鎖

  • 何謂悲觀鎖與樂觀鎖
  • 兩種鎖的使用場景
  • 樂觀鎖常見的兩種實現方式
  • 樂觀鎖的缺點
  • CAS 與 synchronized 的使用情景

面經分享:美團面試也太難了!4面美團終成Offer

設計模式

  • 請列舉出在 JDK 中幾個常用的設計模式?
  • 什么是設計模式?你是否在你的代碼里面使用過何設計模式?
  • Java 中什么叫單例設計模式?請用 Java 寫出線程安全的單例模式
  • 使用工廠模式最主要的好處是什么?在哪里使用?
  • 舉例說明什么情況下會更傾向于使用抽象類而不是接口?

面經分享:美團面試也太難了!4面美團終成Offer

BATJ必考面試題

Java

面經分享:美團面試也太難了!4面美團終成Offer

大數據

面經分享:美團面試也太難了!4面美團終成Offer

pythoh

面經分享:美團面試也太難了!4面美團終成Offer

多線程

  • 現在有 T1、T2、T3 三個線程,你怎樣保證 T2 在 T1 執行完后執行,T3 在 T2 執行完后執行?
  • 在 Java 中 Lock 接口比 synchronized 塊的優勢是什么?你需要實現一個高效的緩存,它允許多個用戶讀,但只允許一個用戶寫,以此來保持它的完整性,你會怎樣去實現它?
  • Java 中的 volatile 關鍵是什么作用?怎樣使用它?在 Java 中它跟 synchronized 方法有什么不同?
  • 什么是不可變對象,它對寫并發應用有什么幫助?
  • 什么是競爭條件?你怎樣發現和解決競爭?
  • 你在多線程環境中遇到的常見的問題是什么?你是怎么解決它的?

面經分享:美團面試也太難了!4面美團終成Offer

JVM

  • 內存模型以及分區,需要詳細到每個區放什么
  • 堆里面的分區:Eden,survival (from+ to),老年代,各自的特點
  • GC 的兩種判定方法
  • java 類加載過程?
  • 什么是類加載器,類加載器有哪些?
  • 簡述 java 內存分配與回收策略以及 Minor GC 和Major GC

面經分享:美團面試也太難了!4面美團終成Offer

Springboot

  • 什么是 Spring Boot?
  • Spring Boot 有哪些優點?
  • Spring Boot 中的監視器是什么?
  • 如何在自定義端口上運行 Spring Boot 應用程序?
  • 如何集成 Spring Boot 和 ActiveMQ?
  • 如何使用 Spring Boot 實現異常處理?

面經分享:美團面試也太難了!4面美團終成Offer

Linux

  • Linux 中主要有哪幾種內核鎖?
  • Linux 中的用戶模式和內核模式是什么含義?
  • 怎樣申請大塊內核內存?
  • 用戶進程間通信主要哪幾種方式?
  • 通過伙伴系統申請內核內存的函數有哪些?

面經分享:美團面試也太難了!4面美團終成Offer

HR面試題(參考)

面經分享:美團面試也太難了!4面美團終成Offer

面試結束復盤查漏補缺

每次面試都是檢驗自己知識與技術實力的一次機會,面試結束后建議大家及時總結復盤,查漏補缺,然后有針對性地進行學習,既能提高下一場面試的成功概率,還能增加自己的技術知識棧儲備,可謂是一舉兩得。

以下最新總結的阿里P6資深Java必考題范圍和答案,包含最全MySQL、Redis、Java并發編程等等面試題和答案,用于參考~

資料免費領取方式:點贊關注后,戳這里免費領取

重要的事說三遍,關注+關注+關注!

歷經30天,說說我的支付寶4面+美團4面+拼多多四面,僥幸全獲Offer

image.png

更多筆記分享

棧儲備,可謂是一舉兩得。

以下最新總結的阿里P6資深Java必考題范圍和答案,包含最全MySQL、Redis、Java并發編程等等面試題和答案,用于參考~

資料免費領取方式:點贊關注后,戳這里免費領取

重要的事說三遍,關注+關注+關注!

[外鏈圖片轉存中…(img-GVF3Goe1-1624876022388)]

[外鏈圖片轉存中…(img-UXgd8Jbd-1624876022389)]

更多筆記分享

歷經30天,說說我的支付寶4面+美團4面+拼多多四面,僥幸全獲Offer

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/385832.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/385832.shtml
英文地址,請注明出處:http://en.pswp.cn/news/385832.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

nginx alias php 404,Nginx配置靜態服務器以及404問題解決,root和alias的區別

最近在使用Nginx配置一個圖片靜態服務器來通過http請求訪問圖片,在配置的時候,發現遇到訪問有404的問題,結果發現是在配置路徑的時候,和路徑屬性是root還是alias的有關。nginx配置文件server {listen 88;server_name localhost;#c…

Java框架體系架構的知識,輕松拿下offer

算法 ?道常?的字符串算法題總結最?公共前綴回?串兩數相加翻轉鏈表鏈表中倒數第k個節點刪除鏈表的倒數第N個節點合并兩個排序的鏈表劍指offer部分編程題跳臺階問題變態跳臺階問題?維數組查找替換空格題?描述:數值的整數次?調整數組順序使奇數位于偶數前?鏈表…

php函數網,php函數

時間相關1.time(),可獲得當前時間的時間戳.2.strtotime(),可將一個文本類型的datetime轉化成時間戳.3.格式輸出:比如輸出時間為01/31/2011date(m/d/Y,時間戳).再如: date ( Y-m-d H:i:s , 時間戳 ); 2011-01-31 04:20:59.輸入輸出相關echo sprintf("%.2f",0.24236); …

java開發學生管理系統,看這篇足矣了!

20道常見MySQL數據庫面試題解析 事務四大特性(ACID)原子性、一致性、隔離性、持久性? 事務的并發?事務隔離級別,每個級別會引發什么問題,MySQL默認是哪個級別? MySQL常見的三種存儲引擎&#…

oracle頻,Oracle動作頻頻 Java或浴火重生

【51CTO觀察】自從今年(2010)的1月27日Oracle正式宣布完成并購Sun以來,Java的前途和命運一直是眾多Java開發者的所關心的話題。4月9日,被稱為Java之父的James Gosling又在個人博客上宣布離開Oracle,這一事件更為Java的前景增加了一層迷霧。但…

java開發實戰經典第二版百度網盤,靈魂拷問

一面(一個小時左右) 算法:寫冒泡排序,問如何優化,簡單講了快排和堆排序的原理數據庫:解釋左連接數據庫第一第二第三范式,數據庫死鎖linux:怎么查看內存;怎么查看進程&am…

php用戶之間的數據,什么是位于用戶與操作系統之間的一層數據管理軟件

什么是位于用戶與操作系統之間的一層數據管理軟件?DBMS是位于用戶與操作系統之間的一層數據管理軟件。數據庫管理系統(Database Management System)是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫,簡稱DBMS。它對數據庫進行統…

java開發實戰經典答案百度云,含面試題+答案

1、上下文切換 上下文定義 cpu發生進程或者線程切換時,所依賴的數據集合,比如一個函數有外部變量,函數運行時,必須獲取外部變量,這些變量值的集合就是上下文。 引發問題 對于CPU密集型任務,多線程處理會…

redius和oracle怎么配置,求個 交換機radius 詳細配置案例

配置采用RADIUS協議進行認證和計費示例組網需求如圖1所示,用戶通過SwitchA訪問網絡,用戶同處于huawei域。SwitchB作為目的網絡接入服務器。用戶首先需要穿越SwitchA和SwitchB所在的網絡,然后通過服務器的遠端認證才能通過SwitchB訪問目的網絡…

java開發小程序好嗎,看完必懂

1關于MySQL,面試官會問哪些問題? 第一個:MySQ性能優化最佳實踐21個(有具體的解釋)你知道哪些? 為查詢緩存優化你的查詢 EXPLAIN你的SELECT查詢 當只要一行數據時使用LIMIT 1 為搜索字段建索引 在Join表…

linux拉取指定時間內,Linux 日期和時間操作詳解

Linux將時鐘分為系統時鐘(System Clock)和硬件(Real Time Clock,簡稱RTC)時鐘兩種。系統時間是指當前Linux Kernel中的時鐘,而硬件時鐘則是主板上由電池供電的那個主板硬件時鐘,當Linux啟動時,硬件時鐘會去讀取系統時鐘的設置,然后…

java開發屬于后端嗎,值得一讀!

1. 垃圾回收機制 Stop-the-World:   JVM由于要執行GC而停止了應用程序的執行稱之為Stop-the-World,該情形會在任何一種GC算法中發生。當Stop-the-world發生時,除了GC所需的線程以外,所有線程都處于等待狀態直到GC任務完成。事實…

linux 創建精靈進程,linux 進程通信之 守護進程

守護進程(Daemon)Daemon(精靈)進程,是linux中的后臺服務進程,通常獨立于控制終端并且周期性地執行某種任務或等待處理某些發生的時間。一般采用以d結尾的名字。從下面的進程信息可以看出,守護進程都是【?】。colord 1160 0.0 0.2 …

java開發崗位招聘,吊打面試官

一.java基礎面試知識點 java中和equals和hashCode的區別 int、char、long各占多少字節數 int與integer的區別 探探對java多態的理解 String、StringBuffer、StringBuilder區別 什么是內部類?內部類的作用 抽象類和接口區別 抽象類的意義 抽象類與接口的應用…

linux 調用默認程序打開文件,Excel VBA如何使用默認應用程序打開文件

我無法評論現有答案(分數不足),因此我在回答以添加信息。從Access 2010開始,我遇到了以下語法的無提示故障:Dim URL As StringURL "http://foo.com/"CreateObject("Shell.Application").Open URL如果用URL括號括起來&am…

java開發工作找不到要放棄嗎,年薪50W

1. Redis面試專題 絕大部分寫業務的程序員,在實際開發中使用 Redis 的時候,只會 Set Value 和 Get Value 兩個操作,對 Redis 整體缺乏一個認知。這里以面試題的形式對 Redis 常見問題做一個總結,解決大家的知識盲點。 什么是Red…

linux 函數手冊 在線,Linux系統API函數手冊

Linux系統API函數手冊 (34頁)本資源提供全文預覽,點擊全文預覽即可全文預覽,如果喜歡文檔就下載吧,查找使用更方便哦!11.90 積分(一)文件操作篇 1、creat(建立文件)頭文件1 #include2 #include3 #include定義函數1 int creat(const char * pa…

java開發工具包的英文縮寫,程序員翻身之路

基本概念面試題集( Spring 相關概念梳理) 談談對Spring loC的理解?談談對Spring Dl的理解?BeanFactory 接口和ApplicationContext接口不同點是什么?請介紹你熟悉的Spring 核心類,并說明有什么作用?介紹一下Spring的事務的了解?介紹—下…

linux 磁盤管理3板斧,Linux磁盤管理三板斧的使用心得

磁盤是Linux系統中一項非常重要的資源,如何對其進行有效的管理直接關系到整個系統的性能問題。對Linux磁盤管理稍微有一 些學習和經驗的朋友們應該都知道df、du和fdisk這三個常用命令:df用于檢查文件系統磁盤占用情況,du檢查磁盤空間占用情況…

java開發工程師學什么專業,Java核心知識點

應聘求職 每年這個時候,都是應屆生求職以及在職人員跳槽的高峰期。對于即將成為程序員的應屆畢業生們。在求職過程中怎樣確定目標公司和目標職位,大家在求職過程中要注意哪些細節?這些都是大家所關心的話題。 ①應聘渠道: ⑴學校招聘會&a…