百度java社招面試題和解題思路!

一、redis分佈式鎖如何保證原子性?mysql

能夠了解下這個命令: set key value [EX seconds] [PX mlliseconds] [NX)XX]redis

二、用過ThreadLocal嗎 ?簡單說一下?
ThreadLocal採用的是以空間換時間的方式,爲每一個線程提供一份變量副本。 每個線程均可以獨立的改變本身的副本。具體例子能夠本身去網上找。算法

三、Java8之 後的ConcurrentHashMap,捨棄分段鎖
經過JDK的源碼和官方文檔看來,他們認爲的棄用分段鎖的緣由由如下凡點:加入多個分段鎖浪費內存空間。生產環境中,map在放入時競爭同一個鎖的機率很是小,分段鎖反而會形成更新等操做的長時間等待。爲了提升GC的效率。sql

四、介紹下cms收集器
CMS收集器是老年代收集器,能夠配合新生代的Seria和ParNew收集器一塊兒使用。使用的是標記清除算法,容易產生內存碎片。數據庫

4個步驟: 1.初始標記--併發標記--從新標記--併發清除( 初始標記、從新標記)仍需STW。但初始標記僅僅只標記了一下GC Roots能直接關聯到的對象,速度很快。而從新標記則是修正併發標記期間因用戶程序繼續運行而致使標記產生變更的那一部分對象的標記記錄,雖然通常比初始標記階段稍長,但要遠小於併發標記時間。緩存

五、redis緩存與數據庫一致性問題 ?
一致性問題主要出如今數據更新的時候,一般在更新時採起刪除緩存而不是更新緩存。具體一點?先淘汰緩存,再寫數據庫。由於若是先寫數據庫可能出現若是有讀請求發生,可能致使舊數據入緩存,引起數據不一致。併發

六、dubbo有 哪幾種負載均衡策略?
RandomL oadBalance:按權重隨機調用,這種方式是dubb默認的負載均衡策略
RoundRobinL oadBalance :輪詢,按公約後的權重設置輪詢比率
L eastActivel oadBalance :最少活躍次數
ConsistentHashLoadBalance :一致性hash
自定義負載均衡策略
七、介紹下一 致性hash ?
先說下普通hash有機器宕機或者新加機器的後果。而後介紹一致性hash,hash值是個整數非負數值,全部的hash值造成一一個閉圓環對集羣的的節點的某個屬性求hash值,放到環 上.數據key求hash值,也放到環上。數據的hash值按順時針找到離它最近的節點,放在該節點上。負載均衡

八、介紹下mysql的回表和覆蓋索引?
回表簡單來講就是數據庫根據索引(非主鍵)找到了指定記錄所在行後, 還須要根據主鍵再次到數據庫裏獲取數據。若是一個索引包含(或要蓋)全部須要查詢的字段的值,稱爲覆蓋索引。即只需掃描索引而無須回表。dom

九、說下模板方法模式?
所謂模版方式模式:把不變的行爲搬到超類,去除子類中重複的代碼來體現他的優點;當不變的和可變的行爲在子類實現中混合在一塊兒的時候,不變的行爲就會在子類中重複實現,咱們經過模板方法模式把這些行爲搬移到單一的地方,這樣就能夠幫助子類擺脫重複不變行爲的糾纏。分佈式

相關文章
相關標籤/搜索