面試問題整理

2021-09-16 13:45:56 字數 1688 閱讀 1693

所謂事務,就是提供一種機制,將乙個活動涉及的所有操作納入到乙個不可分割的執行單元,只要其中任何乙個操作執行失敗,都將導致整個事務的回滾。簡單的說,就是一種」要不什麼都不做,要麼做全套「機制。

資料庫本地事務:

acid原則

a:atomicity 原子性

c:consistency 一致性

i:isolation 隔離性

d:durability 永續性

而事務的acid是通過innodb日誌和鎖來保證。事務的隔離性是通過資料庫鎖的機制實現的,永續性通過redo log(重做日誌)來實現,原子性和一致性通過undo log來實現。

所謂分布式事務,簡單的說,就是一次大的操作由不同的小操作組成,這些小的操作分布在不同的伺服器上,且屬於不同的應用,分布式事務需要保證這些小操作要麼全部成功,要麼全部失敗。

cap原則

c(資料強一致性)

a(資料可用性)

p(分割槽容錯性)

三者不可兼得,一般是cp系統或ap系統

寶寶樹面試

1、thread sleep()方法與wait()方法的區別

1️⃣sleep方法屬於thread類,而wait屬於object類

2️⃣sleep()方法導致了程式暫停執行指定的時間,讓出 cpu 該其他執行緒,但是他的監控狀態依然 保持者,當指定的時間到了又會自動恢復執行狀態。

3️⃣在呼叫 sleep()方法的過程中,執行緒不會釋放物件鎖。而當呼叫 wait()方法的時候,執行緒會放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此

物件呼叫 notify()方法後本執行緒才進入物件鎖定池準備獲取物件鎖進入執行狀態。

2、volatile關鍵字能否杜絕併發

不能,加鎖機制(即同步機制)既可以確保可見性又可以確保原子性,而volatile變數只能確保可見性,原因是宣告為volatile的簡單變數如果當前值與該變數以前的值相關,那麼volatile關鍵字不起作用,也就是說如下的表示式都不是原子操作:「count++」、「count = count+1」。

3、如何優雅的終止乙個執行緒

使用volatile標誌位

4、分庫分表實現分頁查詢

5、當兩個快取value比較大,沒有超過memcached、redis的value大小範圍,且有頻繁的讀寫操作,選用哪個儲存

金山雲面試

1、redis各種儲存結構的效能考慮(什麼情況下用相應的儲存結構)

2、給定乙個數,轉換成二進位制後,數裡面1的個數,從節約時間複雜度方面考慮,怎麼做

3、資料庫事務,當寫鎖鎖定資料後,能否讀取該數,在更新過程中,讀取的是寫入之前的資料還是寫入後的資料

延伸:資料的髒讀、幻讀、可重複讀

髒讀(read uncommitted):在兩個事務中,乙個事務讀到了另乙個事務未提交的資料(即事務a讀取到事務b修改資料,當事務b未提交資料到資料庫或出錯時,事務a再進行讀取發現資料已修改。例如:將物件放入快取未同步到資料庫,讀取資料從快取中進行讀取)。

幻讀(read commit):乙個事務讀取到另乙個事務提交的資料(主要表現為某行資料修改–即事務a在操作前先對資料進行讀取,事務b對某行資料進行修改,事務a再次讀取資料發現資料已不一致)

可重複讀(repeatable read):在事務提交前讀取到的值始終為同乙個,但是如果表**現資料的增加和刪除則讀取的結果可能會有偏差(例如:事務a統計大於某行大於100資料,第一次統計為10個,此時事務b向表中插入資料,再次進行統計發現已經不是10個)

面試問題整理

c 中 deque的實現 可以在兩端高效插入 刪除資料,支援隨機訪問 內部實現原理 利用分段陣列,將元素存放在乙個個大小固定的陣列中,再有乙個索引陣列存放這些陣列的首位址。頭部插入資料時,移動頭部首位址索引即可,從後往前移動,如果當前資料段滿了,則將資料儲存在新建立的分段陣列中,並將其首位址加入到索...

面試問題整理

最近面試,遇到了不少題目,為今後的再面試做準備,特收集記錄於此 一 關於管理方面的 1 如何構建比較完整的測試體系框架,可以從哪些方面入手?思路 測試技術體系建設 測試管理支撐 主要從團隊組織 環境建設 標準制定 人員培養 配置管理 工作流程 a 軟體測試管理體系建設可以從測試的總體規程 需求跟蹤管...

HDFS面試問題整理

1 hdfs讀取流程,小檔案處理 2 hdfs的資料壓縮演算法 3 datanode什麼情況下不會進行備份 4 hdfs的體系結構 5 hdfs的儲存機制 6 hdfs的基本原理 7 hdfs上傳檔案的流程 8 hadoop1.0和2.0hdfs的block各為多少?9 hdfs為什麼不太適合小檔案...