Java程序員必備,中級(jí)面試總結(jié)建議收藏

Java程序員必備,中級(jí)面試總結(jié)建議收藏

天津卓眾教育      2022-04-03 16:21:01     18

Java程序員必備,中級(jí)面試總結(jié)建議收藏,  如果你參加了很多公司的面試,但都沒有拿到心目中理想的offer,又或者拿到offer的概率特別低,原因很簡(jiǎn)單,你可能在技術(shù)知識(shí)

課程價(jià)格 請(qǐng)咨詢

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

詳細(xì)介紹



  如果你參加了很多公司的面試,但都沒有拿到心目中理想的offer,又或者拿到offer的概率特別低,原因很簡(jiǎn)單,你可能在技術(shù)知識(shí)點(diǎn)上有漏洞。


  Java面試,是對(duì)技術(shù)知識(shí)棧的梳理、考核、復(fù)盤


  每一次Java面試,其實(shí)都是一次學(xué)習(xí)機(jī)會(huì),是對(duì)自己技術(shù)知識(shí)棧的梳理、考核、復(fù)盤。我們應(yīng)該抱著學(xué)習(xí)的態(tài)度,認(rèn)真對(duì)待,找到自己比較薄弱的環(huán)節(jié),盡快去查漏補(bǔ)缺學(xué)習(xí)鞏固。


  經(jīng)過(guò)一輪認(rèn)真復(fù)習(xí)之后,你會(huì)發(fā)現(xiàn)自己的技術(shù)知識(shí)棧越來(lái)越充實(shí),這時(shí)候再去挑戰(zhàn)好offer,成功概率無(wú)疑會(huì)增大很多。當(dāng)有機(jī)會(huì)參與心儀公司或BAT大廠面試時(shí),你至少能夠游刃有余回答大部分問(wèn)題~



  一、Java基礎(chǔ)和高級(jí)


  1.String類為什么是final的。


  2.HashMap的源碼,實(shí)現(xiàn)原理,底層結(jié)構(gòu)。


  3.反射中,Class.forName和classloader的區(qū)別


  4.session和cookie的區(qū)別和聯(lián)系,session的生命周期,多個(gè)服務(wù)部署時(shí)session管理。


  5.Java中的隊(duì)列都有哪些,有什么區(qū)別。


  6.Java的內(nèi)存模型以及GC算法


  7.Java7、Java8的新特性


  8.Java數(shù)組和鏈表兩種結(jié)構(gòu)的操作效率,在哪些情況下(從開頭開始,從結(jié)尾開始,從中間開始),哪些操作(插入,查找,刪除)的效率高


  9.Java內(nèi)存泄露的問(wèn)題調(diào)查定位:jmap,jstack的使用等等


  二、spring框架


  spring框架中需要引用哪些jar包,以及這些jar包的用途


  srpingMVC的原理


  springMVC注解的意思


  spring中beanFactory和ApplicationContext的聯(lián)系和區(qū)別


  spring注入的幾種方式


  spring如何實(shí)現(xiàn)事物管理的


  springIOC和AOP的原理


  spring中循環(huán)注入的方式


  SpringAOP與IOC的實(shí)現(xiàn)原理


  Spring的beanFactory和factoryBean的區(qū)別


  Spring的事務(wù)隔離級(jí)別,實(shí)現(xiàn)原理


  對(duì)Spring的理解,非單例注入的原理?它的生命周期?循環(huán)注入的原理,aop的實(shí)現(xiàn)原理,說(shuō)說(shuō)aop中的幾個(gè)術(shù)語(yǔ),它們是怎么相互工作的?


  springboot特性,優(yōu)勢(shì),適用場(chǎng)景等


  三、java多線程常見問(wèn)題


  1.Java創(chuàng)建線程之后,直接調(diào)用start()方法和run()的區(qū)別


  2.常用的線程池模式以及不同線程池的使用場(chǎng)景


  3.newFixedThreadPool此種線程池如果線程數(shù)達(dá)到最大值后會(huì)怎么辦,底層原理。


  4.多線程之間通信的同步問(wèn)題,synchronized鎖的是對(duì)象,衍伸出和synchronized相關(guān)很多的具體問(wèn)題,例如同一個(gè)類不同方法都有synchronized鎖,一個(gè)對(duì)象是否可以同時(shí)訪問(wèn)?;蛘咭粋€(gè)類的static構(gòu)造方法加上synchronized之后的鎖的影響。


  5.了解可重入鎖的含義,以及ReentrantLock和synchronized的區(qū)別


  6.同步的數(shù)據(jù)結(jié)構(gòu),例如concurrentHashMap的源碼理解以及內(nèi)部實(shí)現(xiàn)原理,為什么他是同步的且效率高


  7.atomicinteger和volatile等線程安全操作的關(guān)鍵字的理解和使用


  8.線程間通信,wait和notify


  四、常用命令


  1.常用的linux下的命令


  2.大的log文件中,統(tǒng)計(jì)異常出現(xiàn)的次數(shù)、排序,或者指定輸出多少行多少列的內(nèi)容。


  3.linux下的調(diào)查問(wèn)題思路:內(nèi)存、CPU、句柄數(shù)、過(guò)濾、查找、模擬POST和GET請(qǐng)求等等場(chǎng)景


  4.shell腳本


  五、網(wǎng)絡(luò)通信


  1.http是無(wú)狀態(tài)通信,http的請(qǐng)求方式有哪些,可以自己定義新的請(qǐng)求方式么。


  2.socket通信,以及長(zhǎng)連接,分包,連接異常斷開的處理。


  3.socket通信模型的使用,AIO和NIO。


  4.socket框架netty的使用,以及NIO的實(shí)現(xiàn)原理,為什么是異步非阻塞。


  5.同步和異步,阻塞和非阻塞。


  六、設(shè)計(jì)模式(寫代碼)


  1.單例模式:飽漢、餓漢。以及餓漢中的延遲加載


  2.工廠模式、裝飾者模式、觀察者模式等


  七、數(shù)據(jù)庫(kù)MySql


  1.MySql的存儲(chǔ)引擎的不同


  2.單個(gè)索引、聯(lián)合索引、主鍵索引


  3.Mysql怎么分表,以及分表后如果想按條件分頁(yè)查詢?cè)趺崔k(如果不是按分表字段來(lái)查詢的話,幾乎效率低下,無(wú)解)


  4.分表之后想讓一個(gè)id多個(gè)表是自增的,效率實(shí)現(xiàn)


  5.MySql的主從實(shí)時(shí)備份同步的配置,以及原理(從庫(kù)讀主庫(kù)的binlog),讀寫分離


  6.事物的四個(gè)特性,以及各自的特點(diǎn)(原子、隔離)等等,項(xiàng)目怎么解決這些問(wèn)題


  八、算法&數(shù)據(jù)結(jié)構(gòu)&設(shè)計(jì)模式


  使用隨機(jī)算法產(chǎn)生一個(gè)數(shù),要求把1-1000W之間這些數(shù)全部生成。(考察高效率,解決產(chǎn)生沖突的問(wèn)題)


  兩個(gè)有序數(shù)組的合并排序


  一個(gè)數(shù)組的倒序


  計(jì)算一個(gè)正整數(shù)的正平方根


  說(shuō)白了就是常見的那些查找排序算法


  數(shù)組和鏈表數(shù)據(jù)結(jié)構(gòu)描述,各自的時(shí)間復(fù)雜度


  二叉樹遍歷


  快速排序


  BTree相關(guān)的操作


  在工作中遇到過(guò)哪些設(shè)計(jì)模式,是如何應(yīng)用的


  hash算法的有哪幾種,優(yōu)缺點(diǎn),使用場(chǎng)景


  什么是一致性hash


  paxos算法


  九、分布式緩存


  1.為什么用緩存,用過(guò)哪些緩存,redis和memcache的區(qū)別


  2.redis的數(shù)據(jù)結(jié)構(gòu)


  3.redis的持久化方式,以及項(xiàng)目中用的哪種,為什么


  4.redis集群的理解,怎么動(dòng)態(tài)增加或者刪除一個(gè)節(jié)點(diǎn),而保證數(shù)據(jù)不丟失。(一致性哈希問(wèn)題)


  線程池、高并發(fā)、NIO


  分析線程池的實(shí)現(xiàn)原理和線程的調(diào)度過(guò)程


  線程池如何調(diào)優(yōu)


  線程池的最大線程數(shù)目根據(jù)什么確定


  動(dòng)態(tài)代理的幾種方式


  HashMap的并發(fā)問(wèn)題


  了解linkedHashMap的應(yīng)用嗎


  反射的原理,反射創(chuàng)建類實(shí)例的三種方式是什么?


  cloneable接口實(shí)現(xiàn)原理,淺拷貝or深拷貝


  JavaNIO使用


  hashtable和hashmap的區(qū)別及實(shí)現(xiàn)原理,hashmap會(huì)問(wèn)到數(shù)組索引,hash碰撞怎么解決


  arraylist和linkedlist區(qū)別及實(shí)現(xiàn)原理


  反射中,Class.forName和ClassLoader區(qū)別


  String,Stringbuffer,StringBuilder的區(qū)別?


  有沒有可能2個(gè)不相等的對(duì)象有相同的hashcode


  簡(jiǎn)述NIO的最佳實(shí)踐,比如netty,mina


  TreeMap的實(shí)現(xiàn)原理


  JVM相關(guān)(面試必考)


  JVM內(nèi)存分幾個(gè)區(qū),每個(gè)區(qū)的作用是什么?


  Java8的內(nèi)存分代改進(jìn)


  JVM垃圾回收機(jī)制,何時(shí)觸發(fā)MinorGC等操作


  jvm中一次完整的GC流程(從ygc到fgc)是怎樣的,重點(diǎn)講講對(duì)象如何晉升到老年代,幾種主要的jvm參數(shù)等


  你知道哪幾種垃圾收集器,各自的優(yōu)缺點(diǎn),重點(diǎn)講下cms,g1


  新生代和老生代的內(nèi)存回收策略


  Eden和Survivor的比例分配等


  深入分析了Classloader,雙親委派機(jī)制


  JVM的編譯優(yōu)化


  對(duì)Java內(nèi)存模型的理解,以及其在并發(fā)中的應(yīng)用


  指令重排序,內(nèi)存柵欄等


  OOM錯(cuò)誤,stackoverflow錯(cuò)誤,permgenspace錯(cuò)誤


  JVM常用參數(shù)


  分布式相關(guān)


  Dubbo的底層實(shí)現(xiàn)原理和機(jī)制


  Dubbo服務(wù)負(fù)載均衡策略?


  描述一個(gè)服務(wù)從發(fā)布到被消費(fèi)的詳細(xì)過(guò)程


  分布式系統(tǒng)怎么做服務(wù)治理


  接口的冪等性的概念


  消息中間件如何解決消息丟失問(wèn)題


  Dubbo的服務(wù)請(qǐng)求失敗怎么處理


  重連機(jī)制會(huì)不會(huì)造成錯(cuò)誤


  對(duì)分布式事務(wù)的理解


  如何實(shí)現(xiàn)負(fù)載均衡,有哪些算法可以實(shí)現(xiàn)?


  Zookeeper的用途,選舉的原理是什么?


  數(shù)據(jù)的垂直拆分水平拆分。


  zookeeper原理和適用場(chǎng)景


  zookeeperwatch機(jī)制


  redis/zk節(jié)點(diǎn)宕機(jī)如何處理


  分布式集群下如何做到唯一序列號(hào)


  如何做一個(gè)分布式鎖


  用過(guò)哪些MQ,怎么用的,和其他mq比較有什么優(yōu)缺點(diǎn),MQ的連接是線程安全的嗎


  MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失


  列舉出你能想到的數(shù)據(jù)庫(kù)分庫(kù)分表策略;分庫(kù)分表后,如何解決全表查詢的問(wèn)題。


  數(shù)據(jù)庫(kù)


  MySQLInnoDB存儲(chǔ)的文件結(jié)構(gòu)


  索引樹是如何維護(hù)的?


  數(shù)據(jù)庫(kù)自增主鍵可能的問(wèn)題


  MySQL的幾種優(yōu)化


  mysql索引為什么使用B+樹


  數(shù)據(jù)庫(kù)鎖表的相關(guān)處理


  索引失效場(chǎng)景


  高并發(fā)下如何做到安全的修改同一行數(shù)據(jù),樂(lè)觀鎖和悲觀鎖是什么,INNODB的行級(jí)鎖有哪2種,解釋其含義


  數(shù)據(jù)庫(kù)會(huì)死鎖嗎,舉一個(gè)死鎖的例子,mysql怎么解決死鎖


  Redis&緩存相關(guān)


  Redis的并發(fā)競(jìng)爭(zhēng)問(wèn)題如何解決了解Redis事務(wù)的CAS操作嗎


  緩存機(jī)器增刪如何對(duì)系統(tǒng)影響最小,一致性哈希的實(shí)現(xiàn)


  Redis持久化的幾種方式,優(yōu)缺點(diǎn)是什么,怎么實(shí)現(xiàn)的


  Redis的緩存失效策略


  緩存穿透的解決辦法


  redis集群,高可用,原理


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


  用Redis和任意語(yǔ)言實(shí)現(xiàn)一段惡意登錄保護(hù)的代碼,限制1小時(shí)內(nèi)每用戶Id最多只能登錄5次


  redis的數(shù)據(jù)淘汰策略


  以上就是天津卓眾教育java培訓(xùn)機(jī)構(gòu)小編介紹的“Java程序員必備,中級(jí)面試總結(jié)建議收藏”的內(nèi)容,希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。


相關(guān)推薦


面試題總結(jié)—高級(jí)Java工程師面試題


Java高級(jí)開發(fā)工程師面試題


秋招中高級(jí)Java面試題,10道詳解,死磕就對(duì)了


最新Java工程師面試題整理[社招篇]


大家都在收藏的中級(jí)常見Java工程師面試題


騰訊Java高級(jí)工程師高頻面試題


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