面試問題總結

別緻522發表於2020-11-02

面試問題:

1.兩個物件如何進行比較,需要實現什麼方法?
equals和== 區別
object類中equals預設方法和==相同,比較的都是地址值,只有當我們重寫了equals方法,通常重寫後比較的是內容。

hashCode的作用及與equals的關係
hashCode的作用是用來獲取hash碼的,也稱作雜湊碼,實際返回值為int型數值,用於確認物件在雜湊表中位置。hashcode只有在建立某個類的雜湊表的時候有用,根據hashcode確定物件在雜湊表中位置。
java中常見的雜湊表類有hashmap,hashset hashtable。
兩個物件equals相等時,hashcode不一定相等。

注意: hashset儲存資料時,判斷重複是根據equals相等並且hashcode相等,則為同一個物件,否則兩個物件屬性相同,都會被儲存。

引申出幾個經常在面試中問到的問題:
1、兩個物件,如果a.equals(b)==true,那麼a和b是否相等?
相等,但地址不一定相等。
2、兩個物件,如果hashcode一樣,那麼兩個物件是否相等?
不一定相等,換句話說hashcode相等,對應的鍵值對可能不同,也就是hash衝突。判斷兩個物件是否相等,需要判斷equals是否為true。

2.Synchronized修飾靜態方法和普通方法的區別?
修飾靜態方法的鎖為class鎖,當前類鎖。
修飾普通方法的為this鎖,物件鎖。

3.單例模式 餓漢式懶漢式優缺點?
餓漢式

4.動態代理及靜態代理分別怎樣實現?
5.volatile關鍵字用法?
6.執行緒如何實現安全?
7.HashMap插入重複Key值問題
8.concurrent併發包
9.執行緒池有幾種、都有哪些引數?
9.Mysql索引底層資料結構與演算法?
10.mysql引擎?
11.mysql與oracle區別?
12.Spring 的切面程式設計AOP如何實現 注入切面程式
13.jdk 1.8特性
14.maven布控
15.事務隔離級別
16.前後端跨域如何解決
17.冒泡 二分排序思想
18.怎樣保證redis資料與資料庫一致?
19.mybatis底層如何實現?
20.RabbitMQ的六種工作模式?
21.java鎖分哪幾種?
22.maven生命週期
23.ThreadLocal

還沒有整理完全,後期有時間更新。

相關文章