1. 美團(tuán)一面,看看你能否回答上來(lái)?

        共 3144字,需瀏覽 7分鐘

         ·

        2021-07-09 17:17

        關(guān)注公眾號(hào)Java后端技術(shù)全棧

        回復(fù)“000”獲取程序員必備電子書

        大家好,我是老田,今天給大家分享的是一位網(wǎng)友,去美團(tuán)點(diǎn)評(píng)面試遇到的技術(shù)問(wèn)題(一面),希望你先用這些題目進(jìn)行默答,看看自己知道多少。

        題目

        1、做一下自我介紹吧,簡(jiǎn)單說(shuō)一下你的項(xiàng)目?

        2、有遇到過(guò)內(nèi)存泄漏嗎?你們是怎么解決的?這個(gè)前陣子確實(shí)遇到過(guò)一次,還算運(yùn)氣比較好。

        3、java的基本類型有哪幾個(gè)?String是不是java的基本類型?String為什么要是final類型的?

        4、反射機(jī)制的底層實(shí)現(xiàn)是什么?動(dòng)態(tài)呢?動(dòng)態(tài)的實(shí)現(xiàn)原理?

        5、HashMap了解嗎?說(shuō)一下HashMap相關(guān)的一些東西?HashMap是線程安全的嗎?為什么是線程安全的?ConcureentHashMap了解嗎?他是如何實(shí)現(xiàn)線程安全的?你剛才說(shuō)1.8基于CAS?CAS的ABA問(wèn)題怎么解決?

        6、說(shuō)一下JVM的線程模型?這些區(qū)域都分別是干啥用的?Java線程模型和JVM線程模型注意區(qū)分、總結(jié)下,網(wǎng)上很多文章都是錯(cuò)的。

        7、說(shuō)一下java類加載器的工作機(jī)制?類加載在那個(gè)區(qū)域進(jìn)行的?

        8、說(shuō)一下java的線程模型?violate了解嗎?他的原理是什么?violate是線程安全的嗎?為什么不是?

        9、保證線程安全的解決方法有哪些?說(shuō)一說(shuō)讀寫鎖吧,讀寫鎖的讀

        10、數(shù)據(jù)庫(kù)的索引有哪幾種?為什么要用B+樹(shù)來(lái)做索引?組合索引和幾個(gè)單個(gè)的索引有什么區(qū)別?數(shù)據(jù)庫(kù)的大表查詢優(yōu)化了解嗎?MVCC機(jī)制了解不?MVCC機(jī)制有什么問(wèn)題?怎么去解決這個(gè)問(wèn)題?MySQLmysql 慢語(yǔ)句調(diào)優(yōu)做過(guò)嗎?說(shuō)說(shuō)你是怎么做的?

        11、Redis了解嗎?你說(shuō)說(shuō)怎么用Redis實(shí)現(xiàn)分布式鎖?

        12、Spring中Bean的作用域,Spring MVCcontroller是線程安全的嗎?怎么去保證線程安全呢?

        (面經(jīng)來(lái)自于網(wǎng)友:兩年工作經(jīng)驗(yàn)、山魯亞爾)

        看完上面的這些題目,你覺(jué)得自己能回答上來(lái)多少?按照100分制,你給自己多少分?

        問(wèn)題分析

        1、做一下自我介紹吧,簡(jiǎn)單說(shuō)一下你的項(xiàng)目?

        兩個(gè)問(wèn)題,一是做一個(gè)自我介紹,另外就是介紹項(xiàng)目,項(xiàng)目介紹你最熟悉的,或者最能拿出手的項(xiàng)目,不一定就是最近在做的項(xiàng)目。

        2、有遇到過(guò)內(nèi)存泄漏嗎?你們是怎么解決的?這個(gè)前陣子確實(shí)遇到過(guò)一次,還算運(yùn)氣比較好。

        這個(gè)問(wèn)題,就是靠平時(shí)總結(jié),如果真的沒(méi)有遇到過(guò),也是可以自己模擬的,然后使用各種命令和工具進(jìn)行排查。在面試時(shí)候被問(wèn)到,就大致說(shuō)一下排查思路,排查過(guò)程中用到的命令和工具就可以了。

        3、Java的基本類型有哪幾個(gè)?String是不是Java的基本類型?String為什么要是final類型的?

        前面兩個(gè)問(wèn)題都是考察基礎(chǔ)的,第三問(wèn)就得自己反思了,為什么要設(shè)置成final類型,就得想想final修飾類的時(shí)候,有什么特性?在這里起到什么作用?

        4、反射機(jī)制的底層實(shí)現(xiàn)是什么?動(dòng)態(tài)呢?動(dòng)態(tài)的實(shí)現(xiàn)原理?

        這個(gè)也算是考察基礎(chǔ)知識(shí)是否扎實(shí),重點(diǎn)在動(dòng)態(tài),以及動(dòng)態(tài)和反射的關(guān)系。

        5、HashMap了解嗎?說(shuō)一下HashMap相關(guān)的一些東西?HashMap是線程安全的嗎?為什么是線程安全的?ConcurrentHashMap了解嗎?他是如何實(shí)現(xiàn)線程安全的?你剛才說(shuō)1.8基于CAS?CAS的ABA問(wèn)題怎么解決?

        這是幾個(gè)問(wèn)題,

        HashMap的問(wèn)題

        • 你得說(shuō)一下HashMap是什么,
        • 底層采用什么數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)的,
        • 最好說(shuō)一下put的過(guò)程
        • JDK版本各版本中是怎么樣的。
        • HashMap為什么是線程不安全的?

        ConcurrentHashMap問(wèn)題

        • ConcurrentHashMap是什么?
        • ConcurrentHashMap底層數(shù)據(jù)結(jié)構(gòu)是什么?
        • JDK版本不同,ConcurrentHashMap在設(shè)計(jì)上有些什么區(qū)別

        CAS問(wèn)題

        • CAS是什么?
        • CAS存在什么問(wèn)題
        • ABA問(wèn)題是什么
        • ABA問(wèn)題如何解決

        別想看這個(gè)題目,很多人都掛在這個(gè)題目上。背背面試題,再加上稍微一點(diǎn)點(diǎn)的理解,這些問(wèn)題都能應(yīng)對(duì)。

        6、說(shuō)一下JVM的線程模型?這些區(qū)域都分別是干啥用的?java線程模型和jvm線程模型注意區(qū)分、總結(jié)下,網(wǎng)上很多文章都是錯(cuò)的。

        考察的是JVM內(nèi)存模型,通常也是考察JVM運(yùn)行時(shí)數(shù)據(jù)區(qū),注意,這里千萬(wàn)別把Java內(nèi)存模型搞進(jìn)來(lái),Java內(nèi)存模型叫做JMM。

        說(shuō)到JVM運(yùn)行時(shí)數(shù)據(jù)區(qū),就會(huì)提到線程私有和線程共享。

        尤其是Java虛擬機(jī)棧、堆、方法區(qū),這三個(gè)一定的說(shuō)清楚。

        棧和線程的關(guān)系是什么?棧中存放的是什么?為什么會(huì)SOF?

        堆和對(duì)象內(nèi)存分配有關(guān)系,所以肯定會(huì)聊到對(duì)象的生命周期,那就會(huì)聊到類是怎么被加載到JVM中的?如何判斷一個(gè)對(duì)象已經(jīng)死了?同時(shí)也會(huì)聊到垃圾回收算法有哪些?垃圾收集器有哪些?最新的垃圾收集器是什么?有什么特性?

        熟悉哪些JVM調(diào)優(yōu)參數(shù)?

        這個(gè)問(wèn)題,也是很大部分人會(huì)掛的,我也在線模擬面試過(guò)很多人,聊到JVM這一塊,90%都會(huì)掛。

        7、說(shuō)一下Java類加載器的工作機(jī)制?類加載在那個(gè)區(qū)域進(jìn)行的?

        上面問(wèn)題中說(shuō)過(guò)了,這個(gè)類加載相關(guān)的肯定會(huì)問(wèn),表示你對(duì)一個(gè)類是怎么從.class文件到Class對(duì)象,再到實(shí)的過(guò)程,看看你熟悉多少

        這些問(wèn)題也可以從側(cè)面反饋到,你對(duì)你每一行代碼是怎么運(yùn)行,會(huì)存在什么問(wèn)題是否有所知曉。

        8、說(shuō)一下Java的線程模型?volatile了解嗎?他的原理是什么?violate是線程安全的嗎?為什么不是?

        Java線程模型你得熟悉一下,volatile也得了解一下,有什么特性,可見(jiàn)性、防重排、原子性。這些也得去了解一下。

        這個(gè)問(wèn)題理論性比較強(qiáng),背背面試題,基本上能搞定。

        9、保證線程安全的解決方法有哪些?說(shuō)一說(shuō)讀寫鎖吧,讀寫鎖的讀

        這些都是理論性的,背背面試題就能解決,不是一定要使用過(guò)。自己下去好好準(zhǔn)備一下就可以了

        10、數(shù)據(jù)庫(kù)的索引有哪幾種?為什么要用B+樹(shù)來(lái)做索引?組合索引和幾個(gè)單個(gè)的索引有什么區(qū)別?數(shù)據(jù)庫(kù)的大表查詢優(yōu)化了解嗎?MVCC機(jī)制了解不?MVCC機(jī)制有什么問(wèn)題?怎么去解決這個(gè)問(wèn)題?MySQL 慢語(yǔ)句調(diào)優(yōu)做過(guò)嗎?說(shuō)說(shuō)你是怎么做的?

        這個(gè)相當(dāng)于是MySQL數(shù)據(jù)庫(kù)的8連問(wèn),8個(gè)連環(huán)炮你能回答上來(lái)幾個(gè)?基本上也都是平時(shí)多看看面經(jīng),背背面試題也能應(yīng)對(duì)。

        11、Redis了解嗎?你說(shuō)說(shuō)怎么用Redis實(shí)現(xiàn)分布式鎖?

        這個(gè)問(wèn)題,其實(shí)看起來(lái)簡(jiǎn)單,回答起來(lái)沒(méi)那么簡(jiǎn)單的,

        這里社交很多東西,不是簡(jiǎn)單的setnxLUA腳本就能解決的,涉及到Redis集群模式,涉及到業(yè)務(wù)超時(shí)等問(wèn)題。面試官都是給你安排好的,這個(gè)得有些真材實(shí)料,背面試題只能應(yīng)付比較膚淺的面試官,遇上認(rèn)真點(diǎn)的面試官,那就得用自己的真材實(shí)料去回答了。

        12、SpringBean的作用域,Spring MVCcontroller是線程安全的嗎?怎么去保證線程安全呢?

        這個(gè)問(wèn)題,這里就沒(méi)有扯了,因?yàn)楦鞔蠊娞?hào),我的這個(gè)公眾號(hào)之前也發(fā)過(guò)類似的文章,所以有空別小看公眾號(hào)的重要性。只是在于積累,平時(shí)在車上、地鐵上、工位上休息的時(shí)候,可以借助于一些瑣碎的時(shí)間去看一些技術(shù)性的公文章,積累自己的認(rèn)識(shí)。

        總結(jié)

        實(shí)話實(shí)說(shuō),上面90%的問(wèn)題,我們都可以通過(guò)背面試題來(lái)解決,可能存在個(gè)別題需要自己真的去體會(huì)體驗(yàn)過(guò)才可以搞定。

        但是個(gè)人始終認(rèn)為:五年以內(nèi)的工作經(jīng)驗(yàn),面試基本上可以通過(guò)背面試題來(lái)解決。

        推薦閱讀:
        億級(jí)系統(tǒng)的Redis緩存如何設(shè)計(jì)
        學(xué)會(huì)這10個(gè)設(shè)計(jì)原則,離架構(gòu)師又進(jìn)了一步
        Spring Boot 集成 Kafka

        關(guān)號(hào)互聯(lián)網(wǎng)全棧架構(gòu)價(jià)。

        瀏覽 77
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 欧美抠逼视频 | 欧美乱大交做爰3XXX无码性色情 | 操大奶女 | 日韩人妻一二三区 | 探花操逼|