騰訊Java高級工程師高頻面試題

騰訊Java高級工程師高頻面試題

長沙達內(nèi)教育      2022-03-08 22:00:01     14

騰訊Java高級工程師高頻面試題,  今天在這分享目前國內(nèi)公司Java面試常問的問題包括JVM、常用的算法和數(shù)據(jù)結(jié)構(gòu),redis緩存,分布式,Spring,微服務(wù)等。正所謂

課程價格 請咨詢

上課時段: 授課校區(qū):

詳細介紹



  今天在這分享目前國內(nèi)公司Java面試常問的問題包括JVM、常用的算法和數(shù)據(jù)結(jié)構(gòu),redis緩存,分布式,Spring,微服務(wù)等。正所謂知己知彼,只有體系知識鞏固,面對不斷更新的技術(shù)才能快速掌握,同時在面試、工作中也更能脫穎而出!


  Java集合22題


  ArrayList和Vector的區(qū)別。


  說說ArrayList,Vector,linkedList的存儲性能和特性。


  快速失敗(fail-fast)和安全失敗(fail-safe)的區(qū)別是什么?


  hashmap的數(shù)據(jù)結(jié)構(gòu)。


  HashMap的工作原理是什么?


  Hashmap什么時候進行擴容呢?


  List、Map、Set三個接口,存取元素時,各有什么特點?


  Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?


  兩個對象值相同(x.equals(y)==true),但卻可有不同的hashcode,這句話對不對?


  heap和stack有什么區(qū)別。


  Java集合類框架的基本接口有哪些?


  HashSet和TreeSet有什么區(qū)別?


  HashSet的底層實現(xiàn)是什么?


  linkedHashMap的實現(xiàn)原理?


  為什么集合類沒有實現(xiàn)Cloneable和Serializable接口?


  什么是迭代器(Iterator)?


  Iterator和ListIterator的區(qū)別是什么?


  數(shù)組(Array)和列表(ArrayList)有什么區(qū)別?什么時候應(yīng)該使用Array而不是ArrayList?


  Java集合類框架的最佳實踐有哪些?


  Set里的元素是不能重復(fù)的,那么用什么方法來區(qū)分重復(fù)與否呢?是用==還是equals()?它們有何區(qū)別?


  Comparable和Comparator接口是干什么的?列出它們的區(qū)別


  Collection和Collections的區(qū)別。


  JVM與調(diào)優(yōu)21題


  Java類加載過程?


  描述一下JVM加載Class文件的原理機制?


  Java內(nèi)存分配。


  GC是什么?為什么要有GC?


  簡述Java垃圾回收機制


  如何判斷一個對象是否存活?(或者GC對象的判定方法)


  垃圾回收的優(yōu)點和原理。并考慮2種回收機制


  垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進行垃圾回收?


  Java中會存在內(nèi)存泄漏嗎,請簡單描述


  深拷貝和淺拷貝。


  System.gc()和Runtime.gc()會做什么事情?


  finalize()方法什么時候被調(diào)用?析構(gòu)函數(shù)(finalization)的目的是什么?


  如果對象的引用被置為null,垃圾收集器是否會立即釋放對象占用的內(nèi)存?


  什么是分布式垃圾回收(DGC)?它是如何工作的?


  串行(serial)收集器和吞吐量(throughput)收集器的區(qū)別是什么?


  在Java中,對象什么時候可以被垃圾回收?


  簡述Java內(nèi)存分配與回收策率以及MinorGC和MajorGC。


  JVM的永久代中會發(fā)生垃圾回收么?


  Java中垃圾收集的方法有哪些?


  什么是類加載器,類加載器有哪些?


  類加載器雙親委派模型機制?


  并發(fā)編程28題


  Synchronized用過嗎,其原理是什么?


  你剛才提到獲取對象的鎖,這個“鎖”到底是什么?如何確定對象的鎖?


  什么是可重入性,為什么說Synchronized是可重入鎖?


  JVM對Java的原生鎖做了哪些優(yōu)化?


  為什么說Synchronized是非公平鎖?


  什么是鎖消除和鎖粗化?


  為什么說Synchronized是一個悲觀鎖?樂觀鎖的實現(xiàn)原理又是什么?什么是CAS,它有什么特性?


  樂觀鎖一定就是好的嗎?


  跟Synchronized相比,可重入鎖ReentrantLock其實現(xiàn)原理有什么不同?


  那么請談?wù)凙QS框架是怎么回事兒?


  請盡可能詳盡地對比下Synchronized和ReentrantLock的異同。


  ReentrantLock是如何實現(xiàn)可重入性的?


  除了ReetrantLock,你還接觸過JUC中的哪些并發(fā)工具?


  請談?wù)凴eadWriteLock和StampedLock。


  如何讓Java的線程彼此同步?你了解過哪些同步器?請分別介紹下。


  CyclicBarrier和CountDownLatch看起來很相似,請對比下呢?


  Java線程池相關(guān)問題


  Java中的線程池是如何實現(xiàn)的?


  創(chuàng)建線程池的幾個核心構(gòu)造參數(shù)?


  線程池中的線程是怎么創(chuàng)建的?是一開始就隨著線程池的啟動創(chuàng)建好的嗎?


  既然提到可以通過配置不同參數(shù)創(chuàng)建出不同的線程池,那么Java中默認實現(xiàn)好的線程池又有哪些呢?請比較它們的異同


  如何在Java線程池中提交線程?


  什么是Java的內(nèi)存模型,Java中各個線程是怎么彼此看到對方的變量的?


  請談?wù)剉olatile有什么特點,為什么它能保證變量對所有線程的可見性?


  既然volatile能夠保證線程間的變量可見性,是不是就意味著基于volatile變量的運算就是并發(fā)安全的?


  請對比下volatile對比Synchronized的異同。


  請談?wù)凾hreadLocal是怎么解決并發(fā)安全的?


  很多人都說要慎用ThreadLocal,談?wù)勀愕睦斫?,使用ThreadLocal需要注意些什么?


  Netty10題


  BIO、NIO和AIO的區(qū)別?


  NIO的組成?


  Netty的特點?


  Netty的線程模型?


  TCP粘包/拆包的原因及解決方法?


  了解哪幾種序列化協(xié)議?


  如何選擇序列化協(xié)議?


  Netty的零拷貝實現(xiàn)?


  Netty的高性能表現(xiàn)在哪些方面?


  NIOEventLoopGroup源碼?


  網(wǎng)絡(luò)


  網(wǎng)絡(luò)7層架構(gòu)


  TCP/IP原理


  TCP三次握手/四次揮手


  HTTP原理


  傳輸流程


  HTTP狀態(tài)


  CDN原理


  Redis


  什么是redis?


  Reids的特點


  Redis支持的數(shù)據(jù)類型


  Redis是單進程單線程的


  虛擬內(nèi)存


  Redis鎖


  讀寫分離模型


  數(shù)據(jù)分片模型


  Redis的回收策略


  使用Redis有哪些好處?


  redis相比memcached有哪些優(yōu)勢?4


  redis常見性能問題和解決方案


  MySQL里有2000w數(shù)據(jù),redis中只存20w的數(shù)據(jù),如何保證redis中的數(shù)據(jù)都是熱點數(shù)據(jù)245


  Memcache與Redis的區(qū)別都有哪些?


  Redis常見的性能問題都有哪些?如何解決?


  Redis最適合的場景


相關(guān)java面試題推薦


最全最新java面試題及答案


2019高級Java程序員面試題


Java程序員總結(jié)出必看的初級~高級技術(shù)面試題


培訓(xùn)啦提醒您:交易時請核實對方資質(zhì),對于過大宣傳或承諾需謹慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險,謹防上當(dāng)。