1. 程式人生 > >java開發常見面試題

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