生活随笔
收集整理的這篇文章主要介紹了
最近面试一些厂的面经整理(阿里,腾讯,字节等)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1. 經(jīng)歷了一個(gè)半月的時(shí)間學(xué)習(xí),已拿到阿里,騰訊,字節(jié),美團(tuán),oppo,(360剩下hr)的實(shí)習(xí)offer,總結(jié)一些面試內(nèi)容,希望能對(duì)后來(lái)的面試人起到幫助
2. 阿里(已通過)
一面
1.兩道算法題:
賣酒瓶問題,五瓶啤酒瓶子可以兌換一瓶,三個(gè)瓶蓋可以兌換一瓶,n個(gè)酒瓶,可以喝多少次map村成String和String存成map synchronized和volatileHashmap和Hashtable和concurrentHashmap的區(qū)別 二面
簡(jiǎn)答Spring與Springboot之間的問題回答JVM上的問題回答Java中鎖機(jī)制回答Java中的數(shù)據(jù)庫(kù)問題 三面
回答Java中的數(shù)據(jù)索引問題回答Spring中一些注解問題項(xiàng)目中遇到的問題及其解決方案 交叉面
兩道算法題
1)英文題目,回文串的判斷,包含各種字符
2)假如允許你對(duì)字符串進(jìn)行如下操作,每次花費(fèi)“1”的代價(jià)把任意字符挪到字符串末端.現(xiàn)在給定兩個(gè)長(zhǎng)度相等的字符串 S1 和 S2,問至少需要多少開銷將S1變?yōu)镾2,比如輸入:S1:acdk,S2:ckad, output:2cookie和session之間的區(qū)別,如何防止cookie泄露什么是JDBC,它有什么用JDK和JRE是什么,他們之間有什么聯(lián)系Java中的值傳遞問題final和finalize之間的區(qū)別 HR面:這個(gè)因人而異,感覺沒啥發(fā)的,需要的話再發(fā)吧
3. 騰訊pcg(已通過)
一面
兩道算法題
a. 已知整數(shù)數(shù)組A ,找到一個(gè)具有最大和的連續(xù)子數(shù)組,并返回和。
如 { -2, 8, -4, 6, -1},其最大連續(xù)子序列為{ 8, -4, 6 },最大和為10
b. 計(jì)算二叉樹從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)的路徑和,打印和為定值的所有路徑項(xiàng)目中并發(fā)的部署情況及其高并發(fā)問題 二面
來(lái)小伙子跟俺聊聊你的項(xiàng)目,有哪些問題,進(jìn)行過那些優(yōu)化,為什么如果讓你設(shè)計(jì)一個(gè)網(wǎng)盤,你從那些角度進(jìn)行設(shè)計(jì),保證網(wǎng)盤的傳輸速度盡可能快牛逼是吧,來(lái)整幾個(gè)算法題
1)中序和后續(xù)遍歷后的結(jié)果,給整成正常的樹結(jié)構(gòu),并按照先根順序輸出出來(lái)
2)注意,給你一堆數(shù)范圍在0-1000且以集合的形式進(jìn)行存放,請(qǐng)?jiān)O(shè)計(jì)一個(gè)結(jié)構(gòu),能夠迅速進(jìn)行存取,刪除,進(jìn)行查找,遍歷 三面
如何保證UDP的可靠傳輸?怎么實(shí)現(xiàn)?
2.Mysql索引?覆蓋索引?什么時(shí)候使用B+樹,什么時(shí)候使用哈希表?操作系統(tǒng)多進(jìn)程和多線程?linux底層中進(jìn)程中存儲(chǔ)成什么形式,包含哪些內(nèi)容?python和java的區(qū)別?python如何實(shí)現(xiàn)多線程?python字典如何實(shí)現(xiàn)遍歷?兩種遍歷的區(qū)別是什么講講網(wǎng)絡(luò)中的洪范攻擊,會(huì)出現(xiàn)什么問題?如何去應(yīng)對(duì)和解決?什么是僵尸進(jìn)程?
7.java中的hashmap?Table?ConcurrentHashMap之間的關(guān)系區(qū)別?
8.多線程如何創(chuàng)建?里面的參數(shù)分別表示什么?
9.Socket用過嗎?底層了解嘛?如何讓你實(shí)現(xiàn)一個(gè)socket服務(wù)端,你會(huì)注意什么?另外select,poll,epoll之間的區(qū)別是什么?
10.MTU知道嗎?不知道!那它的大小是多少?我都不知道怎么知道大小?。。。 四面
如何用命令查看慢查詢 ?Mysql如何進(jìn)行優(yōu)化?Mysql底層的數(shù)據(jù)結(jié)構(gòu)是什么樣子?為什么使用b+樹?redis緩存底層怎么實(shí)現(xiàn)的?redis如何保證主從一致性問題?如何理解多進(jìn)程和多線程?了解過協(xié)線程?什么場(chǎng)景下使用多線程,什么場(chǎng)景下使用多進(jìn)程?Hashmap和TreeMap的底層原理計(jì)算機(jī)網(wǎng)絡(luò)中的四次揮手過程,最后的timewait為什么等待2msl?手寫代碼,以空格分隔的一串字符串,求排序后的順序redis中了解過分布式鎖嗎?其中的list數(shù)據(jù)結(jié)構(gòu)是什么? HR面:懶得打字,略
4. 字節(jié)(已通過,宣傳一波,真的效率很高,溫柔)
一面
基礎(chǔ)問題,hashMap及一些并發(fā)包的使用網(wǎng)絡(luò)中常常出現(xiàn)的一些響應(yīng)代碼如200OK等如何保證多線程安全sychronized與volatile關(guān)鍵字的區(qū)別用過線程池嘛?那就開心的聊聊線程池原理,順便講講里面的參數(shù)。排序算法,找出K個(gè)大的數(shù),盡可能耗時(shí)少二叉樹進(jìn)行從上到下輸出出來(lái),按層次遍歷單例模式,順便手寫一下,不要用腳丫 二面
手撕代碼,在一堆數(shù)組中找到首次出現(xiàn)頻次大于n的數(shù)字手撕代碼,數(shù)組循環(huán)右移k位TCP三次握手TCP如何保障可靠傳輸進(jìn)程之間通信方式,那種最快?進(jìn)程和線程之間的區(qū)別,線程之間的同步方式讓你設(shè)計(jì)一個(gè)鎖子,如何實(shí)現(xiàn)線程安全?不允許使用鎖關(guān)鍵字泛型中T怎么實(shí)現(xiàn)?extends和super之間的區(qū)別? 三面
進(jìn)程之間的通信模式java中的IO,BIO,NIO之間的區(qū)別和聯(lián)系java中的多線程了解么,如何創(chuàng)建線程?差點(diǎn)答到了線程池上。即然了解線程池,那么來(lái)寫個(gè)代碼,最外層定義i,定義一個(gè)void函數(shù)里面新建個(gè)線程,對(duì)i進(jìn)行+1操作,最后打印i,請(qǐng)問i的值是多少?為什么?如何保證i之后的值為thread運(yùn)行后的值?(提示使用wait和notify,或者是join來(lái)實(shí)現(xiàn),后想到了countdownLock)了解md5么?https?手撕算法,寫兩個(gè)數(shù)相加,數(shù)字范圍是大于IntegerLRU的應(yīng)用場(chǎng)景?(如網(wǎng)頁(yè)最近瀏覽記錄),那如何實(shí)現(xiàn)LRU呢? HR:略
5. 美團(tuán)(等HR中)
一面
計(jì)算機(jī)網(wǎng)絡(luò),如何保證可靠傳輸聊聊mysql底層索引java種的鎖機(jī)制,說(shuō)說(shuō)sychronized底層與原理,說(shuō)說(shuō)volatileredis種的分布式手寫一個(gè)樹,并進(jìn)行遞歸和非遞歸中序遍歷網(wǎng)絡(luò)中的三次握手,TCP和UDP中的差異,簡(jiǎn)述一下http和https的區(qū)別,并講講https的過程,那DNS查找過程講講mysql的索引失效?聚集和非聚集索引,采用的底層數(shù)據(jù)結(jié)構(gòu),為什么不用b樹操作系統(tǒng)中的死鎖是什么,如何解決?講講你理解的頁(yè)面調(diào)度算法,手寫一下LRU。進(jìn)程和線程的區(qū)別是啥,那sleep和wait的區(qū)別呢來(lái),手寫快排java中的hashmap?arraylist了解過嗎?底層原理?java中的反射機(jī)制了解過嘛?反射可以操作私有變量不?簡(jiǎn)述一下jvm中強(qiáng)引用,虛引用,弱引用,軟引用,簡(jiǎn)述jvm內(nèi)存緩沖區(qū)計(jì)算機(jī)七層結(jié)構(gòu),每層功能和使用的協(xié)議,ping屬于哪層?進(jìn)程之間的通信如何進(jìn)行? 二面
項(xiàng)目中為什么使用redis,有什么優(yōu)點(diǎn)?String,StringBuilder,StringBuffer區(qū)別Object種包含哪些方法?一般用在哪個(gè)場(chǎng)合Object種finalized()和finally和final之間的區(qū)別Mysql中使用的索引。為什么使用B+樹?一個(gè)方法被private和static修飾,能被override嗎?為什么HashTable和concurrentHashMap區(qū)別,源碼中哪些地方使用鎖?為什么?在數(shù)據(jù)類型中為什么會(huì)有包裝類型和基本數(shù)據(jù)類型?jvm中的垃圾回收機(jī)制項(xiàng)目中使用的垃圾回收器?項(xiàng)目中怎么進(jìn)行JVM調(diào)優(yōu)?如何查看服務(wù)器日志?做題,美團(tuán)筆試題類型,賊復(fù)雜java中的內(nèi)存泄露問題,如何出現(xiàn)?如何解決? 三面
聊聊HashMap唄,源碼一些問題,put過程,resize過程,什么時(shí)候會(huì)出現(xiàn)resize,你知道底層的數(shù)據(jù)結(jié)構(gòu)嗎?里面有些關(guān)鍵變量分別是什么?HashMap中你key存放過哪些東西?嘗試過放對(duì)象么?需要實(shí)現(xiàn)兩個(gè)東西,是什么東西懟項(xiàng)目20分鐘寫個(gè)代碼,鏈表反轉(zhuǎn),有沒有其他的好方法
5.java內(nèi)存堆,棧分別放什么東西?String str = "abc"和String str1 = new String(“abc”);之間的區(qū)別?==和equal的區(qū)別?你平時(shí)重寫過equal沒?hashcode有沒有重寫過,為什么要用hashcode?操作系統(tǒng)中,進(jìn)程都存一些啥東西? 6. 在學(xué)習(xí)過程中遇到過很多優(yōu)秀的博客,對(duì)解釋很不錯(cuò)的進(jìn)行了整理,附帶連接
https://blog.csdn.net/l8947943/article/details/104477780
7.其他廠的話問題就沒這么復(fù)雜,就不記錄了,但是大多數(shù)都是很基礎(chǔ)的問題,內(nèi)容也要求扎實(shí),本內(nèi)容在??陀邪l(fā),轉(zhuǎn)載請(qǐng)說(shuō)明并注明出處,希望能對(duì)面試者提供幫助
總結(jié)
以上是生活随笔為你收集整理的最近面试一些厂的面经整理(阿里,腾讯,字节等)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。