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