想了解上海java程序怎么樣嗎?想了解美團(tuán)社招(上海)Java開(kāi)發(fā)面經(jīng)?? 嗎?......本文帶你一探究竟。
1.美團(tuán)社招(上海)Java開(kāi)發(fā)面經(jīng)
先搞個(gè)前提,各位同學(xué)可以根據(jù)自身情況僅做參考,本人非計(jì)算機(jī)專業(yè),學(xué)歷一般吧,工作目前兩年左右。招聘的崗位描述:Java開(kāi)發(fā)工程師,但可能需要學(xué)習(xí)Go語(yǔ)言,非業(yè)務(wù)開(kāi)發(fā)*地點(diǎn):上海市長(zhǎng)寧區(qū)北新涇地鐵站附近吧,一年之后極有可能搬到楊浦區(qū)技術(shù)一面 項(xiàng)目相關(guān)的一些問(wèn)題,主要是闡述了下項(xiàng)目是什么業(yè)務(wù)場(chǎng)景,解決什么問(wèn)題,在進(jìn)行項(xiàng)目描述過(guò)程匯總面試官比較關(guān)注的貌似是并發(fā)量和業(yè)務(wù)總量 因?yàn)槲以陧?xiàng)目中使用了很多的ES作為持久層,所以面試官就針對(duì)我熟悉的中間件進(jìn)行了提問(wèn)ES在寫入時(shí)它是怎么完成一次寫入操作的? 此處我給出了兩種層面的回答在架構(gòu)層面:由于ES分為了master、client、data、ingest四種角色,每次寫入和讀取的HTTP請(qǐng)求都會(huì)先落到client角色的節(jié)點(diǎn)上,然后再負(fù)載到各個(gè)data節(jié)點(diǎn)上,完成寫入和讀取的操作后又將響應(yīng)給應(yīng)用程序。其中需要注意的是data節(jié)點(diǎn)在進(jìn)行查詢時(shí),是由多個(gè)分片進(jìn)行查詢后,在內(nèi)存中拼接而成的,所系查詢時(shí)也需要很大的內(nèi)存, 持久化操作層面: 這層面的話就只是在寫入操作上進(jìn)行了藐視,首先是數(shù)據(jù)請(qǐng)求到達(dá)了data節(jié)點(diǎn)進(jìn)行存儲(chǔ),存儲(chǔ)時(shí)刷盤存在了兩種方式,buffer刷入磁盤和translog進(jìn)行存儲(chǔ) ES集群寫入是怎么優(yōu)化的 關(guān)于HashMap源碼方面的理解,主要是存儲(chǔ)運(yùn)算過(guò)程 HashMap的容量為什么是2的n次方冪HashMap線程不安全會(huì)有哪些影響HashMap的resize過(guò)程是怎么樣的對(duì)于其他集合框架的了解關(guān)于這個(gè)HashMap,我之前有專門研究過(guò)兩天源碼,筆記放著同學(xué)們自行拿取HashMap源碼學(xué)習(xí)筆記JVM堆內(nèi)存模型相關(guān)問(wèn)題 新建對(duì)象內(nèi)存分配過(guò)程(沒(méi)太答上來(lái)) 這里應(yīng)該會(huì)涉及到指針碰撞、空閑列表、并發(fā)安全(CAS機(jī)制和分配緩沖) 堆內(nèi)存中的GC分類,我在回答時(shí)分為了youngGC和FullGC 出現(xiàn)GC時(shí)什么情況下會(huì)有阻塞用戶線程的情況 GC算法進(jìn)行標(biāo)記的時(shí)候,可達(dá)性分析算法中,根可達(dá)算法(GC Roots)有哪些根 作為 GC Roots 的對(duì)象包括下面幾種: 虛擬機(jī)棧(棧幀中的本地變量表)中引用的對(duì)象;各個(gè)線程調(diào)用方法堆棧中使用到的參數(shù)、局部變量、臨時(shí)變量等。 方法區(qū)中類靜態(tài)屬性引用的對(duì)象;java 類的引用類型靜態(tài)變量。 方法區(qū)中常量引用的對(duì)象;比如:字符串常量池里的引用。 本地方法棧中 JNI(即一般說(shuō)的 Native 方法)引用的對(duì)象。 JVM 的內(nèi)部引用(class 對(duì)象、異常對(duì)象 、,系統(tǒng)類加載器)。(非重點(diǎn)) 所有被同步鎖( 關(guān)鍵)持有的對(duì)象。(非重點(diǎn)) JVM 內(nèi)部的 JMXBean、JVMTI 中注冊(cè)的回調(diào)、本地代碼緩存等(非重點(diǎn)) JVM 實(shí)現(xiàn)中的“臨時(shí)性”對(duì)象,跨代引用的對(duì)象 Spring框架是如何解決循環(huán)依賴的問(wèn)題 SpringMVC框架中Filter和有什么區(qū)別,平時(shí)會(huì)怎么使用它們 的實(shí)現(xiàn)原理,為什么能保證線程安全 設(shè)計(jì)模式,手寫一個(gè)靜態(tài)工廠模式 之前另一個(gè)面試手寫過(guò)三種單例模式,這些設(shè)計(jì)模式考的都還挺簡(jiǎn)單的,目前我自己掌握的有 三種創(chuàng)建模式: 單例、工廠、原形 四種行為模式: 模板、策略、監(jiān)聽(tīng)(寫的不多,要百度才能手寫出來(lái))、責(zé)任鏈 一個(gè)業(yè)務(wù)場(chǎng)景的算法選擇,字典樹算法給出的業(yè)務(wù)場(chǎng)景:目前有一堆單詞,給定開(kāi)頭的前綴,如ab找出這對(duì)單詞中以ab開(kāi)頭的單詞。這個(gè)沒(méi)有手寫,但是之前在業(yè)務(wù)上自己用過(guò),放這里方便大家參考public static void initTrie(Set
上述文章了解到關(guān)于美團(tuán)社招(上海)Java開(kāi)發(fā)面經(jīng)?? ,讓我們對(duì)上海java程序怎么樣 有一個(gè)直觀的認(rèn)知。我們發(fā)現(xiàn),作為一個(gè)優(yōu)秀的Java程序員是多么的自豪。