java面試總結


一、java的集合框架

HashMap、HashTable、CurrentHashMap的底層數據結構與區別?

CurrentHashMap與HashTable是如何保證線程安全的?

ArrayList與LinkedList的底層數據結構與區別?

set、list、map有什么區別?他們的父類分別是什么?

http://blog.csdn.net/u011202334/article/details/51496381 HashMap的底層數據結構

https://www.cnblogs.com/xiaoxi/p/6170590.html LinkedHashMap的底層數據結構

https://www.cnblogs.com/java-zhao/p/5102342.html ArrayList的底層數據結構

https://www.cnblogs.com/leskang/p/6029780.html LinkedList的底層數據結構

http://blog.csdn.net/u012999869/article/details/51714290 ConcurrentHashMa底層數據結構

http://blog.csdn.net/baidu_28068985/article/details/78529246 相關數據結構的底層實現及比較

http://blog.csdn.net/LYW_lyw/article/details/78809809

二、字符串

String、StringBuffer、StringBuilder的區別?

String str = new String("abd);  String str = "abd";  執行這兩句話后分別創建了幾個對象?

三、線程池與多線程

什么是線程池?線程池的作用?

如何實現多線程同步?

創建線程的方式有哪幾種?

ThreadLocal的作用?

synchronized關鍵字與Lock、ReentrantLock的區別?

常見的有哪些鎖?

什么是分布式鎖?如何實現分布式鎖?

java中AQS與CAS是什么?

什么是原子性操作?

volatile關鍵字的作用與原理?

http://blog.csdn.net/gol_phing/article/details/49032055    線程池原理講解

https://blog.csdn.net/a837199685/article/details/50619311  線程池種類以及排隊策略

https://blog.csdn.net/wenwen091100304/article/details/48318699  多線程同步的方法

http://blog.51cto.com/lavasoft/51926 ThreadLocal講解

https://www.cnblogs.com/xzwblog/p/7227509.html  徹底理解ThreadLocal

http://www.importnew.com/23511.html  深入分析synchronized的原理

https://blog.csdn.net/baidu_37107022/article/details/77016993  偏向鎖、輕量級鎖、重量級鎖(講的很有條理,易懂)

http://www.infoq.com/cn/articles/ftf-java-volatile 深入分析Volatile的實現原理

https://www.cnblogs.com/zhengbin/p/5654805.html   JavaVolatile關鍵字詳解

https://www.cnblogs.com/waterystone/p/4920797.html  Java並發之AQS詳解

https://blog.csdn.net/fighterandknight/article/details/54906293  JavaCAS詳解

https://www.cnblogs.com/davidwang456/p/4662099.html  java原子操作的實現原理

https://blog.csdn.net/hejingyuan6/article/details/47053409  線程之間如何實現數據共享(舉例說明,例子不錯)

http://www.cnblogs.com/xrq730/p/5060921.html  關於線程的面試題(有時間可以看看)

https://www.cnblogs.com/baizhanshi/p/5437933.html 一個簡單的死鎖的例子

四、類加載器原理

https://www.cnblogs.com/fingerboy/p/5456371.html  java中的類加載器的原理

五、樂觀鎖和悲觀鎖的區別與應用場景

https://blog.csdn.net/claram/article/details/53959367  什么是樂觀鎖和悲觀鎖?他們有什么區別?如何實現樂觀鎖?  

六、設計模式

什么是單例模式?請寫一個單例模式的例子。

什么是觀察者模式?

https://www.cnblogs.com/zhaoyan001/p/6365064.html  常見的八種單例模式?

https://www.cnblogs.com/lthIU/p/6240128.html  防反射注入的單例模式

七、java的概念性問題

什么是java的面向對象?(一般從java的面向對象的特點來回答)

抽象類和接口的區別?

https://www.cnblogs.com/coprince/p/8603492.html   什么是泛型?為什么用泛型?

什么情況下使用基本類型的包裝類?

八、垃圾回收器

jvm內存溢出?內存泄漏?jvm的內存結構?

年輕代、老年代、終生代中,垃圾回收器回收時都采用什么回收算法?

http://www.sohu.com/a/134512799_695350          各種java垃圾回收器的比較

https://www.cnblogs.com/firstdream/p/5763646.html   java GC系列,講的比較好

https://www.cnblogs.com/cielosun/p/6674431.html     java垃圾回收算法講解

九、java中的nio與io

https://segmentfault.com/a/1190000014932357?utm_source=tag-newest  什么是io?什么是nio?二者有什么區別?為什么nio非阻塞的?

https://blog.csdn.net/zcl_love_wx/article/details/52126876  java的序列化與反序列化? 

https://www.cnblogs.com/luoxn28/p/5641877.html 

https://www.cnblogs.com/yyy-blog/p/7003693.html 

十、網絡協議

HTTP協議、TCP協議、IP協議分別工作在哪一層?

TCP協議的三次握手機制是什么?為什么采用這種機制?

HTTP協議與HTTPS協議的區別?

什么是restful風格? https://www.jianshu.com/p/43dae0b83755

rpc與rest的區別? https://baijiahao.baidu.com/s?id=1617168792520937104&wfr=spider&for=pc

http和rpc調用的優缺點? https://www.jianshu.com/p/b61695e6b473

十一、瀏覽器的常用狀態碼

200、400、500、403、404等狀態碼什么意思?

https://blog.csdn.net/wyhluckydog/article/details/84667323  http狀態碼詳解

十二、數據庫

什么是ACID?

Oracle和mysql的區別?(若都用過會問)https://blog.csdn.net/baidu_37107022/article/details/77043959 

oracle或mysql的底層數據結構?

Oracle或mysql的分頁查詢語句?

什么是索引?為什么會創建索引?什么是聚集索引?什么是組合索引?什么情況下會導致索引失效?創建索引需要注意的問題?

數據庫的三范式?

sql優化?什么是存儲過程?

創建表的時候需要注意的問題?

left join、right join、inner join的區別?

Oracle數據庫如何實現自增?

https://www.cnblogs.com/yyjie/p/7788428.html  mysql數據庫sql語句執行順序

https://blog.csdn.net/zh15732621679/article/details/80409517   mysql索引優化

https://blog.csdn.net/u011504963/article/details/79727849  mysql索引優化實戰(不錯)

https://blog.csdn.net/qsfwy/article/details/83701246  執行了一條save語句但是沒有提交事務,那么數據有沒有存到庫里面?

https://blog.csdn.net/qq_23217629/article/details/52516277  sql優化避免索引失效

https://blog.csdn.net/ybaog/article/details/53906300 (創建索引的優點和缺點)

https://www.cnblogs.com/xxiaoye/p/3679899.html 為何創建索引能提高查詢效率

https://blog.csdn.net/zhangbo_0323/article/details/50156357  (對於B樹、B+樹的理解)

https://www.cnblogs.com/aspnethot/articles/1504082.html (聚集索引)

https://blog.csdn.net/litong09282039/article/details/46404139 (主鍵、外鍵、索引的關系

 https://www.cnblogs.com/Qian123/p/5669259.html sql語句的執行順序?(不錯)

https://www.cnblogs.com/augus007/articles/7999586.html  sql語句的執行原理(很好)

https://blog.csdn.net/wanghjbuf/article/details/50792970 (輔助理解

https://blog.csdn.net/zhangyuan19880606/article/details/51217952  (四中mysql的引擎,可能會問到)

 十三、spring框架

spring中事務的傳播屬性有哪幾種?區別是什么?隔離級別有哪幾種?

spring 事務默認的回滾異常時什么?

spring和springMVC的關系是什么?

spring中的bean是如何被加載到容器中的?

spring 控制器默認是單例的嗎?若是單例的話可能會有什么后果?是線程安全的嗎?

spring的IOC和AOP是什么?

https://blog.csdn.net/qq_34173549/article/details/79929071  spring ioc原理講解

過濾器和攔截器的區別?

Spring AOP注解什么時候失效?如何解決?

springboot有了解過嗎?

spring使用的兩種代理jdk的動態代理和cglib動態代理的原理與區別分別是什么?

https://blog.csdn.net/trigl/article/details/50968079  (spring 事務管理,講得好)

https://blog.csdn.net/liaohaojian/article/details/70139151  (spring 事務管理,講的更具體)

 https://www.cnblogs.com/hafiz/p/5875740.html  (spring和springMVC的關系)

https://www.cnblogs.com/leeSmall/p/7653494.html  (spring各個注解的作用與使用)

http://www.jb51.net/article/137255.htm  Spring AOP注解失效及解決辦法

https://www.cnblogs.com/hongwz/p/5764917.html  spring AOP原理透徹講解(例子)

https://blog.csdn.net/u013126379/article/details/52121096  淺談spring的兩種代理的區別

https://blog.csdn.net/a745233700/article/details/80959716  spring面試題整理

https://blog.csdn.net/panhaigang123/article/details/79587612 spring boot與spring cloud面試題整理

 十三、servlet技術

什么是servlet?與CGI的區別是什么?

servlet的生命周期?什么時候創建?什么時候銷毀?DispatcherServlet什么時候創建?servlet的創建方式?

https://www.cnblogs.com/disneyland/p/4692339.html  servlet什么時候被實例化

https://blog.csdn.net/u012129558/article/details/52329543  servlet單例理解

十四、AJAX

請求是同步請求還是異步請求?

十五、hibernate與mybatis

MyBatis了解嗎?與hibernate有什么區別?

https://blog.csdn.net/eaphyy/article/details/71190441  mybatis常見面試題

https://blog.csdn.net/a745233700/article/details/80977133  mybatis面試題附答案

https://www.cnblogs.com/wang-meng/p/5701990.html (mybatis開發配置總結,總結好)

十六、算法題

整數的反轉?

常用排序算法有哪些?冒泡排序算法思路?快速排序算法思路?

兩個有序的整型數組如何合並成一個有序的數組?

如何判斷一個鏈表有沒有環?

如何實現字符串的反轉?不准用String類自帶的方法

如何判斷一個數是否是2的n次方?

如何層序遍歷二叉樹並輸出每個節點?

最短路徑算法?(只被問到一次)

十七、redis(若用過redis緩存會問)

redis都有哪幾種數據結構?有哪些優點?適用於什么場合?

與memache有什么區別?

https://www.cnblogs.com/kevingrace/p/5685332.html  redis主從復制原理總結(詳細)

https://blog.csdn.net/chuanxincui/article/details/89306882  RDB與AOF的優缺點

https://www.cnblogs.com/miaozhihang/p/9517714.html   快照與aof的區別

十八、maven工具(若用到會問)

使用maven時的常用命令?

如何解決jar包沖突?

十九、開放題

進程之間如何通訊?(被問過一次)

什么是敏捷開發?

jdk8有什么新特性?(重要)

什么是restful風格?(重要)

tomcat服務器的啟動參數都配置過哪些?

區域鏈了解不?(被問過一次)

幾種加密算法了解嗎?比如base64加密,md5加密?Unicode url加密?

都用過什么工具?比如畫原型用的工具,設計流程用的工具。

https://blog.csdn.net/qinmengdeCluntan/article/details/77532883?locationNum=5&fps=1  集群環境下如何實現session共享?(說下思路會加分)

https://www.bilibili.com/video/av14372754/  jdk8新特性視頻講解

https://blog.csdn.net/xlgen157387/article/details/79036337  分布式鎖簡單入門以及三種實現方式(說下思路會加分)

二十、項目題

一般會問你項目中遇到過哪些問題,是怎么解決的?

你們系統的整體架構是什么?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM