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