java開發常見面試題
Java面試題
這裡只給出了Java面試中常問的一些面試題,本人的答案也不是標準答案,具體答案需要自己多百度,每篇文章給的解釋會有不同,這樣記憶更深。
Java基礎
常用陣列List和set區別(省略)
List,ArrayList和linkedArrayList區別(省略)
Hashtable ,HashMap和CurrHashMap區別
HashTable與HashMap、ConcurrentHashMap主要的區別在於HashMap不是同步的、執行緒不安全的和不適合應用於多執行緒併發環境下,而ConcurrentHashMap是執行緒安全的集合容器,特別是在多執行緒和併發環境中,通常作為Map的主要實現。
ConcurrentHashMap引入了一個“分段鎖”的概念,具體可以理解為把一個大的Map拆分成N個小的HashTable,根據key.hashCode()來決定把key放到哪個HashTable中。
HashMap實現原理
HashMap 在底層將 key-value 當成一個整體進行處理,這個整體就是一個 Entry 物件。HashMap 底層採用一個 Entry[] 陣列來儲存所有的 key-value 對,當需要儲存一個 Entry 物件時,會根據hash演算法來決定其在陣列中的儲存位置,在根據equals方法決定其在該陣列位置上的連結串列中的儲存位置;當需要取出一個Entry時,也會根據hash演算法找到其在陣列中的儲存位置,再根據equals方法從該位置上的連結串列中取出該Entry。
常見資料結構
實現多執行緒的方式
1.繼承Thread類實現多執行緒
2.實現Runnable介面方式實現多執行緒
3.使用ExecutorService、Callable、Future實現有返回結果的多執行緒
互斥鎖
互斥鎖是一個二元變數,其狀態為開鎖(允許0)和上鎖(禁止1),將某個共享資源與某個特定互斥鎖在邏輯上繫結(要申請該資源必須先獲取鎖)。
(1)訪問公共資源前,必須申請該互斥鎖,若處於開鎖狀態,則申請到鎖物件,並立即佔有該鎖,以防止其他執行緒訪問該資源;如果該互斥鎖處於鎖定狀態,則阻塞當前執行緒。
(2)只有鎖定該互斥鎖的程序才能釋放該互斥鎖,其他執行緒試圖釋放無效。
常用演算法
快排冒泡 二分 選擇…..
Synchronized相關
常用框架
Spring兩大特性
AOP和IOC
Spring事務
Springmvc流程
Spring常用註解
Springmvc和springboot區別
Springboot簡便開發,封裝了相關jar,省去xml配置
集成了Tomcat,jetty等容器
支援Redis,MongoDB等,開箱即用
Redis快取機制
Redie和MongoDB區別
Dubbo和springcloud區別
資料庫
Oracle和MySQL分頁區別
MySQL事務
MySQL索引
四種引擎
雜湊索引和B樹索引
https://blog.csdn.net/BrezZ_/article/details/70333482