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

總結

談到面試,其實說白了就是刷題刷題刷題,天天作死的刷。。。。。

為了準備這個“金三銀四”的春招,狂刷一個月的題,狂補超多的漏洞知識,像這次美團面試問的算法、數據庫、Redis、設計模式等這些題目都是我刷到過的

并且我也將自己刷的題全部整理成了PDF或者Word文檔(含詳細答案解析),有需要的朋友可以戳這里即可免費領取

我的美團offer涼涼了?開發工程師(Java崗)三面結束等通知...

66個Java面試知識點

架構專題(MySQL,Java,Redis,線程,并發,設計模式,Nginx,Linux,框架,微服務等)+大廠面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)

我的美團offer涼涼了?開發工程師(Java崗)三面結束等通知...

算法刷題(PDF)

Word文檔(含詳細答案解析),有需要的朋友可以戳這里即可免費領取**

[外鏈圖片轉存中…(img-F3RM2qOv-1626863851917)]

66個Java面試知識點

架構專題(MySQL,Java,Redis,線程,并發,設計模式,Nginx,Linux,框架,微服務等)+大廠面試題詳解(百度,阿里,騰訊,華為,迅雷,網易,中興,北京中軟等)

[外鏈圖片轉存中…(img-l2rWZdkZ-1626863851918)]

算法刷題(PDF)

我的美團offer涼涼了?開發工程師(Java崗)三面結束等通知...

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

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

相關文章

函數chown

一、chown 命令 下面以實例簡單講解下 chown 的使用方法。當前登錄的賬號是 sunbin 創建測試文件當前 test.txt 文件所有者是sunbin,所屬組也是sunbin。 利用 chown 命令修改 test.txt 的所有者和所屬組.可以看到,test.txt 的擁有者變成了 root&#…

不愧是Alibaba技術官,java數組實現單向鏈表

緩存雪崩 緩存雪崩指的是Redis當中的大量緩存在同一時間全部失效,而假如恰巧這一段時間同時又有大量請求被發起,那么就會造成請求直接訪問到數據庫,可能會把數據庫沖垮。 緩存雪崩一般形容的是緩存中沒有而數據庫中有的數據,而因…

【線程】讀寫鎖

一、概念 一把讀寫鎖具備三種狀態: 讀模式下加鎖狀態(讀鎖)寫模式下加鎖轉態(寫鎖)不加鎖狀態2. 讀寫鎖特性: 讀寫鎖是寫模式加鎖時,解鎖前,所有對該鎖加鎖的線程都會阻塞。讀寫鎖是讀模式加鎖時,如果線程以…

不愧是阿里大佬,mysql存儲過程寫法案例

容器化時代來了 虛擬化技術已經走過了三個時代,沒有容器化技術的演進就不會有 Docker 技術的誕生。 虛擬化技術演進 (1)物理機時代:多個應用程序可能會跑在一臺機器上。 (2)虛擬機時代:一臺物…

讀寫鎖(二)

一、實驗項目 【問題描述】程序 trainticket 中,有 100 個線程,其中 90 個線程是查余票數量的,只有 10 個線程搶票,每個線程一次買 10 張票。初始狀態下一共有 1000 張票。因此執行完畢后,還會剩下 900 張票。 程序 …

不看絕對血虧!java字符串轉json

一、對Kafka的認識 1.Kafka的基本概念 2.安裝與配置 3.生產與消費 4.服務端參數配置 二、生產者 1.客戶端開發 必要的參數配置消息的發送序列化分區器生產者攔截器 2.原理分析 整體架構元數據的更新 3.重要的生產者參數 三、消費者 1.消費者與消費組 2.客戶端開發 必要的…

【線程】屏障

一、主要函數應用 1. 函數原型:初始化和回收 int pthread_barrier_init(pthread *barrier, const pthread_barrier_t *attr, unsigned int count); int pthread_barrier_destroy(pthread_barrier_t *barrier);分析: 初始化屏障時,可以使用c…

中高級工程師Java開發!java生成隨機數代碼包

微服務是什么 微服務起源于2005年Peter Rodgers博士在云端運算博覽會提出的微Web服務(Micro-Web-Service),根本思想類似于Unix的管道設計理念。2014年,由Martin Fowler 與 James Lewis共同提出了微服務的概念,定義了微服務架構風格是一種通過…

Java軟件開發面試題!hr和技術經理一起面

springspring5最全知識梳理大綱(總) spring最全知識梳理大綱(總) spring5最全知識梳理大綱(總) spring最全知識梳理大綱(分) 為什么要使用Spring? Bean spring事務 面向…

XSI IPC

一、查詢IPC的命令 顯示: ipcs -a 顯示所有共享內核對象 ipcs -m 顯示共享內存 m memory ipcs -q 消息隊列 q queue ipcs -s 顯示信號量 s semphore刪除: ipcrm -m ID 刪除共享內存 ipcrm -q ID 刪除共享隊列 ipcrm -s ID 刪除信號量 二…

Java進階之光!javaunicode碼轉字符

01 如何理解高并發? 高并發意味著大流量,需要運用技術手段抵抗流量的沖擊,這些手段好比操作流量,能讓流量更平穩地被系統所處理,帶給用戶更好的體驗。 我們常見的高并發場景有:淘寶的雙11、春運時的搶票、…

Java進階之光!java字符串類型轉換為int

阿里巴巴篇 1.扎實的計算機專業基礎,包括算法和數據結構,操作系統,計算機網絡,計算機體系結構,數據庫等2.具有扎實的Java編程基礎,理解IO、多線程等基礎框架3.熟練使用Linux系統的常用命令及shell有一定了…

Java進階之光!mysql創建用戶并授權建表

正文 MyBatis 的整體架構分為三層, 分別是基礎支持層、核心處理層和接口層,如下圖所示。 基礎支持層 反射模塊 該模塊對 Java 原生的反射進行了良好的封裝,提供了更加簡潔易用的 API ,方便上層使調用,并且對反射操作…

System V 信號量

一、System V 信號量 1.信號量linux命令 顯示&#xff1a; ipcs -a 顯示所有共享內核對象 ipcs -s 顯示信號量 s semphore刪除&#xff1a; ipcrm -s ID 刪除信號量 二、主要函數應用 1. 函數原型&#xff1a; #include <sys/sem.h> int semget(key_t key, int …

Java進階之光!mysql安裝包安裝教程

我聽到的一些發聲 你們賺的錢已經可以了&#xff1a; 我一個發小是做土木工程的&#xff0c;上海大學博士&#xff0c;參與很多著名建筑的工程&#xff0c;但是從薪資上看&#xff0c;還不如一些稍微像樣的公司的6年多的高級開發。為什么&#xff1f;這就是行業的紅利&#xf…

Java進階學習資料!dockerjar內存

準備好套路 **①自我介紹&#xff1a;**千萬不能筐瓢&#xff0c;一定要牢記&#xff0c;自然流暢地介紹自己的學習經歷、工作經歷、項目經歷、個人優勢等等&#xff1b; **②抽象概念&#xff1a;**當面試官問你是如何理解多線程的時候&#xff0c;你要知道從定義、來源、實…

管道(二)

無名管道 測試代碼&#xff1a; #include <unistd.h> #include <stdlib.h> #include <stdio.h> #include <fcntl.h> #include <string.h>#define ERR_EXIT(m) do { perror(m); exit(EXIT_FAILURE); }while(0) #define TEST_SIZE 68*1024int mai…

Java進階:java字符串定位語句

正文 模塊&#xff08;Module&#xff09;、組件&#xff08;Component&#xff09;、包&#xff08;Package&#xff09;&#xff0c;這些概念對于我們技術同學并不陌生&#xff0c;但并不是所有人都能理解其要義。 深入理解之后&#xff0c;我才發現&#xff0c;其背后的深…

有名管道

一、有名管道 1. 為何提出有名管道的說法&#xff0c;目的是為了克服無名管道的不足之處&#xff1a; 無名管道只能是用于具有親緣關系的進程之間&#xff0c;這就限制了無名管道的使用范圍。有名管道可以使互不相關的兩個進程互相通信&#xff0c;有名管道可以通過路徑名來指…

Java進階:mysql的事務隔離級別面試題

一面&#xff1a; 阿里巴巴面試答案文末可以領取&#xff01; 1. 觸發新生代GC&#xff0c;如果存活對象總量大于survivor區容量&#xff0c;咋辦 2. 如果任務很多&#xff0c;線程池的阻塞隊列會撐爆內存的哪個區域 3. 棧在堆上嗎 4. GC root有哪些 5. 實例變量可以是GC…