java数据分析库,威力加强版
美團(tuán)技術(shù)一面20分鐘
晚7點(diǎn),因?yàn)橄氲较轮芤徊琶嬖?#xff0c;我剛準(zhǔn)備出去打個(gè)羽毛球,北京的電話(huà)就來(lái)了。面試官各種抱歉,說(shuō)開(kāi)會(huì)拖延了。
1、自我介紹
說(shuō)了很多遍了,很流暢撿重點(diǎn)介紹完。
2、問(wèn)我數(shù)據(jù)結(jié)構(gòu)算法好不好
挺好的(其實(shí)心還是有點(diǎn)虛,不過(guò)最近刷了很多題也只能壯著膽子充胖子了)
3、找到單鏈表的三等分點(diǎn),如果單鏈表是有環(huán)的呢
用快慢指針,一個(gè)走一步,一個(gè)走三步。如果有環(huán),先判斷環(huán)在哪,找最后一個(gè)節(jié)點(diǎn),然后用之前的無(wú)環(huán)的做法
4、講一下項(xiàng)目的架構(gòu)
我重點(diǎn)講了MVC
5、說(shuō)一下你熟悉的設(shè)計(jì)模式
我重點(diǎn)講了單例、工廠(chǎng)方法、代理
5、有沒(méi)有配置過(guò)服務(wù)器
這個(gè)我真不知道,都沒(méi)聽(tīng)過(guò)呢,只能誠(chéng)實(shí)說(shuō)沒(méi)有,畢竟都沒(méi)法扯。
一面挺匆忙的,我估計(jì)面試官剛開(kāi)完會(huì)還沒(méi)吃飯呢。他說(shuō)讓我等,可能再找一個(gè)同事面我,可能就直接告訴我結(jié)果了。從一面面試官的聲音和口吻,我判斷他一定是個(gè)部門(mén)老大,問(wèn)的設(shè)計(jì)偏多,后面hr告訴我他就是我要去的部門(mén)的老大。哈哈。
美團(tuán)技術(shù)二面60分鐘,詳細(xì)問(wèn)答
面完一面正準(zhǔn)備出去打羽毛球,北京的電話(huà)又來(lái)了。(注定這周五參加不了球隊(duì)活動(dòng)了!) 二面:跟一面比起來(lái),二面面試官的聲音聽(tīng)起來(lái)就像是搞技術(shù)開(kāi)發(fā)的,果不其然,一個(gè)小時(shí)的純技術(shù)電話(huà)面試!面的特別全面!
1、Spring:有沒(méi)有用過(guò)Spring,Spring IOC、AOP機(jī)制與實(shí)現(xiàn),Spring MVC
其實(shí)我挺不想被問(wèn)到Spring的細(xì)節(jié)的,框架這些我都沒(méi)有復(fù)習(xí)不太記得了。所以我對(duì)面試官說(shuō)Spring里面的一些比較重要的機(jī)制我理解的還不錯(cuò),然后我用一個(gè)實(shí)際的例子把我對(duì)IOC、AOP理解講了一下,他聽(tīng)了說(shuō)對(duì),理解的不錯(cuò)(難得遇到一個(gè)邊面試邊能給反饋的面試官,好開(kāi)心)
Spring MVC其實(shí)我用過(guò),我就對(duì)面試官講了我的項(xiàng)目中用到的Servlet,jsp和javabean實(shí)現(xiàn)的MVC,以及MVC各個(gè)模塊職責(zé)以及每個(gè)模塊是怎么聯(lián)系到一起的,最后我補(bǔ)充了一句我想SpringMVC的思想其實(shí)跟這個(gè)是一樣的(他說(shuō)對(duì)的,嘿嘿有反饋真好)
2、多線(xiàn)程:怎么實(shí)現(xiàn)線(xiàn)程安全,各個(gè)實(shí)現(xiàn)方法有什么區(qū)別,volatile關(guān)鍵字的使用,可重入鎖的理解,Synchronized是不是可重入鎖
這里我就主要講了Synchronized關(guān)鍵字,還有并發(fā)包下面的一些鎖,以及各自的優(yōu)缺點(diǎn)和區(qū)別。volatile關(guān)鍵字我主要從可見(jiàn)性、原子性和禁止JVM指令重排序三個(gè)方面講的,再講了一下我在多線(xiàn)程的單例模式double-check中用到volatile關(guān)鍵字禁止JVM指令重排優(yōu)化。
3、集合:HashMap底層實(shí)現(xiàn),怎么實(shí)現(xiàn)HashMap線(xiàn)程安全
我講了一下HashMap底層是數(shù)組加單鏈表實(shí)現(xiàn),Node內(nèi)部類(lèi),add的過(guò)程,Hash沖突解決辦法,擴(kuò)容,三種集合視圖。HashMap線(xiàn)程安全的實(shí)現(xiàn)方式主要講了HashTable、ConcurrentHashMap以及Collections中的靜態(tài)方法SynchronizedMap可以對(duì)HashMap進(jìn)行封裝。以及這三種方式的區(qū)別,效率表現(xiàn)。
4、JVM內(nèi)存管理,GC算法,HotSpot里面的垃圾回收器、類(lèi)加載
JVM內(nèi)存主要分為五個(gè)區(qū),哪些是線(xiàn)程共享的,哪些是線(xiàn)程獨(dú)享的,每個(gè)區(qū)存放什么。GC方面:怎么判斷哪些對(duì)象需要被GC,GC的方法,Minor GC與Full GC。HotSpot GC算法以及7種垃圾回收器,主要講了CMS和G1收集器。類(lèi)加載:類(lèi)加載的過(guò)程,Bootstrap classloader-ExtClassloader-AppClassloader,父類(lèi)委托機(jī)制。
5、進(jìn)程和線(xiàn)程的區(qū)別
從調(diào)度、并發(fā)性、擁有的資源和系統(tǒng)開(kāi)銷(xiāo)四個(gè)方面回答的。
6、HTTP有沒(méi)有狀態(tài),我說(shuō)無(wú)狀態(tài),怎么解決HTTP無(wú)狀態(tài)怎么解決HTTP無(wú)狀態(tài)其實(shí)就是怎么進(jìn)行會(huì)話(huà)跟蹤,有四種方法:URL重寫(xiě)、隱藏表單域、Cookie、Session。
7、Java IO,NIO,Java中有沒(méi)有實(shí)現(xiàn)異步IO
Java IO實(shí)現(xiàn)的是同步阻塞,它是怎么實(shí)現(xiàn)同步阻塞的。我拿了read()方法舉例來(lái)講的。NIO實(shí)現(xiàn)的是同步非阻塞,我詳細(xì)講了一下Selector中的select()方法輪詢(xún)說(shuō)明它是如何實(shí)現(xiàn)多路復(fù)用IO的。然后對(duì)比了一下他們的效率。面試官可能看我對(duì)這一塊比較了解,又繼續(xù)問(wèn)我Java中有沒(méi)有實(shí)現(xiàn)異步IO,我感覺(jué)好像沒(méi)有,但面試官說(shuō)有,讓我想想,其實(shí)這里我并不清楚啦,所以我就對(duì)面試官講了一下我對(duì)Unix中異步IO模型的理解,然后說(shuō)至于Java里面有沒(méi)有我真的不太清楚。(他居然笑了!說(shuō)你理解是對(duì)的,Java里面有沒(méi)有不重要!哈哈)
8、前端會(huì)不會(huì),Ajax是什么,Ajax實(shí)現(xiàn)原理
前端我只是會(huì)用一些js而已,用過(guò)jquery框架,問(wèn)我Ajax全稱(chēng)是啥,我猜是異步的js和xml。Ajax實(shí)現(xiàn)原理其實(shí)我也不懂,我就只簡(jiǎn)單講了一下它通過(guò)XMLHttpRequest對(duì)象進(jìn)行異步查詢(xún),Ajax引擎在客戶(hù)端運(yùn)行,減少了服務(wù)器工作量。
9、讓我設(shè)計(jì)一個(gè)線(xiàn)程池
因?yàn)槲液?jiǎn)歷中有寫(xiě)到我對(duì)多線(xiàn)程、并發(fā)這一塊理解比較好。所以他老問(wèn)這方面的題。這個(gè)問(wèn)題因?yàn)槲抑翱催^(guò)ThreadPoolExecutor的源代碼,所以我就仿照那個(gè)類(lèi)的設(shè)計(jì)思路來(lái)想的,詳細(xì)講了一下核心池、創(chuàng)建線(xiàn)程可以用工廠(chǎng)方法模式來(lái)進(jìn)行設(shè)計(jì)、線(xiàn)程池狀態(tài)、阻塞隊(duì)列、拒絕策略這幾個(gè)方面。設(shè)計(jì)的還算比較周全。
10、講幾個(gè)設(shè)計(jì)模式,哪些地方用到了,為什么要用
單例模式,jdk中的getRuntime();工廠(chǎng)方法模式,ThreadPoolExcutor用到ThreadFactory;觀察者模式:java.util包下面的Observable和Observer。最后主要講了一下工廠(chǎng)方法模式的使用場(chǎng)景。
11、Mysql優(yōu)化、索引的實(shí)現(xiàn)
我從數(shù)據(jù)庫(kù)設(shè)計(jì)優(yōu)化和查詢(xún)優(yōu)化兩方面講的。索引B+樹(shù)實(shí)現(xiàn),InnoDB和MyISAM主鍵索引的實(shí)現(xiàn)區(qū)別,一個(gè)聚集一個(gè)非聚集。
12、事務(wù)的隔離級(jí)別
四種隔離級(jí)別,可能會(huì)出現(xiàn)哪些異常,mysql中默認(rèn)級(jí)別。
13、有沒(méi)有用過(guò)Hibernate、mybatis、git
這個(gè)簡(jiǎn)單講一下就好,分別是干什么的
14、Linux
我說(shuō)這個(gè)本科學(xué)過(guò),但是很久沒(méi)用,命令忘光了。他說(shuō)沒(méi)事,考你幾個(gè)簡(jiǎn)單的:cd、ls、dir(真的是簡(jiǎn)單的)
15、算法題
1、從10萬(wàn)個(gè)數(shù)中找最小的10個(gè),時(shí)間復(fù)雜度分析(最大堆,考慮內(nèi)存)
2、從一個(gè)有正有負(fù)數(shù)組中找連續(xù)子數(shù)組的最大和,時(shí)間復(fù)雜度分析(動(dòng)態(tài)規(guī)劃)
3、滿(mǎn)二叉樹(shù)第i層有多少個(gè)節(jié)點(diǎn),n層的滿(mǎn)二叉樹(shù)共有多少個(gè)節(jié)點(diǎn)
終于到我提問(wèn)環(huán)節(jié)了
1、你們是什么部門(mén)(他說(shuō)是核心部門(mén),大數(shù)據(jù)研發(fā))
2、我對(duì)高并發(fā)和負(fù)載均衡挺有興趣的,但是我平時(shí)在學(xué)校也沒(méi)有這個(gè)環(huán)境讓我在這方面有所體驗(yàn),那你建議我目前可以怎么學(xué)呢(他說(shuō)這確實(shí)是不太好學(xué),只能看些理論和別人的博客,以后工作中才能慢慢學(xué))
3、中間件具體是做什么的,是解決高并發(fā)和負(fù)載均衡嗎(他說(shuō)差不多是的,然后他說(shuō)我們這個(gè)部門(mén)不是中間件,是大數(shù)據(jù)部門(mén)啊,我說(shuō)恩我知道)
最后沒(méi)啥問(wèn)題了,他讓我保持電話(huà)暢通。
這一面面完,口干舌燥,我一度懷疑他可能不知道我是在應(yīng)聘實(shí)習(xí)生的崗位。有太多要總結(jié)的了,放在總結(jié)的地方一起講吧。
美團(tuán)技術(shù)三面25分鐘
面試官說(shuō)是他是另外一個(gè)部門(mén)的,需要進(jìn)行交叉面試。
1、MySql優(yōu)化
2、說(shuō)下項(xiàng)目做了些什么,架構(gòu)之類(lèi)的
3、在collabedit上在線(xiàn)寫(xiě)代碼,題目很簡(jiǎn)單是編程之美上的原題,一個(gè)有序的整數(shù)數(shù)組,輸出兩個(gè)數(shù),使它們的和為某個(gè)給定的值。之前做過(guò)很快寫(xiě)好,然后給他講思路。他繼續(xù)問(wèn)如果數(shù)組無(wú)序怎么辦,先排序。4、兩個(gè)文件,每個(gè)文件中都有若干個(gè)url,找出兩個(gè)文件中相同的url(用HashMap)
這一面挺簡(jiǎn)單的,只是增加之前面試沒(méi)有過(guò)的在線(xiàn)寫(xiě)代碼環(huán)節(jié),collabedit后來(lái)我才了解,像facebook一些互聯(lián)網(wǎng)公司遠(yuǎn)程面試都會(huì)用這個(gè)在線(xiàn)編輯器寫(xiě)代碼,就是文本文檔寫(xiě),沒(méi)有提示,不能編譯運(yùn)行,跟白板寫(xiě)一樣。平時(shí)練練手就好。
美團(tuán)技術(shù)HR四面30分鐘
三面面試官說(shuō)他那就是終面,說(shuō)我過(guò)了等hr聯(lián)系我。萬(wàn)萬(wàn)沒(méi)想到半小時(shí)后的hr面居然也是技術(shù)。
1、自我介紹,都四面了還自我介紹?!我還以為是單純的hr面,所以介紹的都是我的性格和生活方面的,結(jié)果并不是。
2、問(wèn)項(xiàng)目,問(wèn)的特別特別細(xì),技術(shù)細(xì)節(jié),還有遇到什么問(wèn)題,怎么解決的,做項(xiàng)目有沒(méi)有人帶,怎么跟別人溝通的。
3、數(shù)據(jù)庫(kù)優(yōu)化,如果數(shù)據(jù)庫(kù)一個(gè)表特別大怎么辦 數(shù)據(jù)庫(kù)優(yōu)化我就講了之前講過(guò)很多遍的點(diǎn),他問(wèn)一個(gè)表特別大怎么辦:大表分小表,怎么實(shí)現(xiàn):使用分區(qū)表
4、問(wèn)研究生的科研題目,為什么選這個(gè)題,看了一些什么論文(細(xì)到問(wèn)我那些論文是發(fā)表在什么期刊上的,作者是哪所學(xué)校的),為什么要選這個(gè)算法,怎么優(yōu)化的,實(shí)驗(yàn)結(jié)果怎么跟別人作對(duì)比的,為什么比別人的算法好(一個(gè)個(gè)問(wèn)題不斷砸過(guò)來(lái),我猜我說(shuō)的那些專(zhuān)業(yè)名詞他應(yīng)該不太懂,只是判斷一下是不是我做的而已。。)
5、確定實(shí)習(xí)時(shí)間 這一面確實(shí)讓我感到有壓迫感,項(xiàng)目是本科做的,挺久了,一些技術(shù)細(xì)節(jié)上也沒(méi)太總結(jié),所以問(wèn)細(xì)了我只能連想帶編,嘿嘿。科研方面倒還好,上個(gè)學(xué)期都在弄這個(gè),一些算法的實(shí)現(xiàn)和改進(jìn)、對(duì)比都還記得比較清楚,回答的挺流暢的,可能這真的就是技術(shù)型的hr面吧。
以上就是他的面試經(jīng)歷了,他事后也找我聊過(guò),總的來(lái)說(shuō),他表達(dá)的意思大概是:在進(jìn)行過(guò)系統(tǒng)學(xué)習(xí)后一定要多刷面試題!!!
但其實(shí)在我看來(lái),基礎(chǔ)知識(shí)是比較重要,但是并不會(huì)重要到對(duì)面試起決定性作用,因?yàn)閷?duì)于企業(yè)來(lái)說(shuō),并不需要你能夠記住多少知識(shí),哪怕你一點(diǎn)都記不住,但是能夠?qū)崿F(xiàn)產(chǎn)品的需求,并能夠說(shuō)明其中的來(lái)龍去脈,說(shuō)白了就是看你的動(dòng)手操作能力和業(yè)務(wù)能力。如果你是一個(gè)死記硬背,記下來(lái)一大堆理論知識(shí),但是到實(shí)際操作的時(shí)候,那些理論知識(shí)往往只是紙上談兵,不過(guò)在面試前刷刷題還是有必要的。(有必要但不絕對(duì))當(dāng)然應(yīng)屆生還是要多刷題的,因?yàn)閼?yīng)屆生在面試之前,大部分都有筆試,刷題還是很有必要的。
前段時(shí)間我閑下來(lái)也整理過(guò)一些面試題,現(xiàn)在把它分享出來(lái),希望能對(duì)各位讀者老哥有些許的幫助。
(篇幅限制只能展示部分面試題及答案出來(lái))感興趣的話(huà)下面會(huì)有獲取方式哈
數(shù)據(jù)庫(kù)
- 請(qǐng)簡(jiǎn)潔描述 MySQL 中 InnoDB 支持的四種事務(wù)隔離級(jí)別名稱(chēng),以及逐級(jí)之間的區(qū)別?
- TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 數(shù)據(jù)類(lèi)型上做什么?
- MySQL 中有哪幾種鎖?
- Redis 是什么?兩句話(huà)做一下概括
- Redis 實(shí)現(xiàn)原理或機(jī)制
- 什么是 MongoDB
- MongoDB 的功能與適用場(chǎng)景
- Redis、memcache、MongoDB 對(duì)比
開(kāi)源框架
- Spring IOC 如何實(shí)現(xiàn)
- 說(shuō)說(shuō) Spring AOP
- Spring 的單例實(shí)現(xiàn)原理
- Spring MVC 運(yùn)行流程
- 說(shuō)說(shuō)業(yè)務(wù)中,Netty 的使用場(chǎng)景
- Netty 線(xiàn)程模型
- 說(shuō)說(shuō) Netty 的零拷貝
微服務(wù)
- 前后端分離是如何做的
- 微服務(wù)哪些框架
- 說(shuō)說(shuō) RPC 的實(shí)現(xiàn)原理
- 說(shuō)說(shuō) Dubbo 的實(shí)現(xiàn)原理
- 說(shuō)說(shuō) CAP 定理、 BASE 理論
- 如何應(yīng)對(duì)微服務(wù)的鏈?zhǔn)秸{(diào)用異常
- 如何拆分服務(wù)
消息中間件
- activemq 的幾種通信方式
- activemq 如果數(shù)據(jù)提交不成功怎么辦(消息丟失)
- activeMQ 發(fā)送消息的方式有哪些?
- 為什么不應(yīng)該對(duì)所有的 message 都使用持久化機(jī)制?
- 向不存在的 exchange 發(fā) publish 消息會(huì)發(fā)生什么?向不存在的queue 執(zhí)行 consume 動(dòng)作會(huì)發(fā)生什么?
- RabbitMQ 中的 broker 是指什么?cluster 又是指什么?
樂(lè)觀鎖與悲觀鎖
- 何謂悲觀鎖與樂(lè)觀鎖
- 兩種鎖的使用場(chǎng)景
- 樂(lè)觀鎖常見(jiàn)的兩種實(shí)現(xiàn)方式
- 樂(lè)觀鎖的缺點(diǎn)
- CAS 與 synchronized 的使用情景
設(shè)計(jì)模式
- 請(qǐng)列舉出在 JDK 中幾個(gè)常用的設(shè)計(jì)模式?
- 什么是設(shè)計(jì)模式?你是否在你的代碼里面使用過(guò)任何設(shè)計(jì)模式?
- Java 中什么叫單例設(shè)計(jì)模式?請(qǐng)用 Java 寫(xiě)出線(xiàn)程安全的單例模式
- 使用工廠(chǎng)模式最主要的好處是什么?在哪里使用?
- 舉例說(shuō)明什么情況下會(huì)更傾向于使用抽象類(lèi)而不是接口?
BATJ必考面試題
Java
大數(shù)據(jù)
pythoh
多線(xiàn)程
- 現(xiàn)在有 T1、T2、T3 三個(gè)線(xiàn)程,你怎樣保證 T2 在 T1 執(zhí)行完后執(zhí)行,T3 在 T2 執(zhí)行完后執(zhí)行?
- 在 Java 中 Lock 接口比 synchronized 塊的優(yōu)勢(shì)是什么?你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶(hù)讀,但只允許一個(gè)用戶(hù)寫(xiě),以此來(lái)保持它的完整性,你會(huì)怎樣去實(shí)現(xiàn)它?
- Java 中的 volatile 關(guān)鍵是什么作用?怎樣使用它?在 Java 中它跟 synchronized 方法有什么不同?
- 什么是不可變對(duì)象,它對(duì)寫(xiě)并發(fā)應(yīng)用有什么幫助?
- 什么是競(jìng)爭(zhēng)條件?你怎樣發(fā)現(xiàn)和解決競(jìng)爭(zhēng)?
- 你在多線(xiàn)程環(huán)境中遇到的常見(jiàn)的問(wèn)題是什么?你是怎么解決它的?
JVM
- 內(nèi)存模型以及分區(qū),需要詳細(xì)到每個(gè)區(qū)放什么
- 堆里面的分區(qū):Eden,survival (from+ to),老年代,各自的特點(diǎn)
- GC 的兩種判定方法
- java 類(lèi)加載過(guò)程?
- 什么是類(lèi)加載器,類(lèi)加載器有哪些?
- 簡(jiǎn)述 java 內(nèi)存分配與回收策略以及 Minor GC 和Major GC
Springboot
- 什么是 Spring Boot?
- Spring Boot 有哪些優(yōu)點(diǎn)?
- Spring Boot 中的監(jiān)視器是什么?
- 如何在自定義端口上運(yùn)行 Spring Boot 應(yīng)用程序?
- 如何集成 Spring Boot 和 ActiveMQ?
- 如何使用 Spring Boot 實(shí)現(xiàn)異常處理?
Linux
- Linux 中主要有哪幾種內(nèi)核鎖?
- Linux 中的用戶(hù)模式和內(nèi)核模式是什么含義?
- 怎樣申請(qǐng)大塊內(nèi)核內(nèi)存?
- 用戶(hù)進(jìn)程間通信主要哪幾種方式?
- 通過(guò)伙伴系統(tǒng)申請(qǐng)內(nèi)核內(nèi)存的函數(shù)有哪些?
HR面試題(參考)
總結(jié)
談到面試,其實(shí)說(shuō)白了就是刷題刷題刷題,天天作死的刷。。。。。
為了準(zhǔn)備這個(gè)“金三銀四”的春招,狂刷一個(gè)月的題,狂補(bǔ)超多的漏洞知識(shí),像這次美團(tuán)面試問(wèn)的算法、數(shù)據(jù)庫(kù)、Redis、設(shè)計(jì)模式等這些題目都是我刷到過(guò)的
并且我也將自己刷的題全部整理成了PDF或者Word文檔(含詳細(xì)答案解析),有需要的朋友可以戳這里即可免費(fèi)領(lǐng)取
66個(gè)Java面試知識(shí)點(diǎn)
架構(gòu)專(zhuān)題(MySQL,Java,Redis,線(xiàn)程,并發(fā),設(shè)計(jì)模式,Nginx,Linux,框架,微服務(wù)等)+大廠(chǎng)面試題詳解(百度,阿里,騰訊,華為,迅雷,網(wǎng)易,中興,北京中軟等)
算法刷題(PDF)
Word文檔(含詳細(xì)答案解析),有需要的朋友可以戳這里即可免費(fèi)領(lǐng)取**
[外鏈圖片轉(zhuǎn)存中…(img-F3RM2qOv-1626863851917)]
66個(gè)Java面試知識(shí)點(diǎn)
架構(gòu)專(zhuān)題(MySQL,Java,Redis,線(xiàn)程,并發(fā),設(shè)計(jì)模式,Nginx,Linux,框架,微服務(wù)等)+大廠(chǎng)面試題詳解(百度,阿里,騰訊,華為,迅雷,網(wǎng)易,中興,北京中軟等)
[外鏈圖片轉(zhuǎn)存中…(img-l2rWZdkZ-1626863851918)]
算法刷題(PDF)
總結(jié)
以上是生活随笔為你收集整理的java数据分析库,威力加强版的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: lol最合适出肉的三个?
- 下一篇: 冰原守卫者手游钓鱼有什么技巧