原创 codevs1010 過河卒

題目描述 Description  如圖,A 點有一個過河卒,需要走到目標 B 點。卒行走規則:可以向下、或者向右。同時在棋盤上的任一點有一個對方的馬(如上圖的C點),該馬所在的點和所有跳躍一步可達的點稱爲對方馬的控制點。例如上圖 C

原创 codevs1427 特種部隊

題目描述 Description 某特種部隊接到一個任務,需要潛入一個倉庫。該部隊士兵分爲兩路,第一路士兵已經在正面牽制住了敵人,第二路士兵正在悄悄地從後方祕密潛入敵人的倉庫。 當他們到達倉庫時候,發現這個倉庫的鎖是一把很詭異的電子鎖

原创 Mysql日誌相關

1、查詢日誌         在 MySQL 中也稱爲通用日誌(general log),查詢日誌裏面記錄了數據庫執行的所有命令,不管語句是否正確,都會被記錄,原因如下: insert 查詢爲了避免數據衝突,如果此前插入過數據,當前插入的

原创 雙重檢查鎖爲什麼要使用volatile字段

雙重檢查鎖的由來 在單例模式中,有一個DCL(雙重鎖)的實現方式,在Java程序中,很多時候需要推遲一些高開銷的對象初始化操作,並且只有在使用這些對象的時候才進行開始初始化。 先來看下面實現單例的方式: 非線性安全的延遲初始化對象方式:

原创 java中lombok裏的Builder註解

       Lombok大家都知道,在使用POJO過程中,對於java對象的創建工作它可以更優雅,不需要寫多餘的重複的代碼它給我們帶來了很多便利,例如省下大量寫get、set方法、構造器、equal、toString方法的時間。除此之外

原创 poj3579 二分搜索+二分查找

Description Given N numbers, X1, X2, ... , XN, let us calculate the difference of every pair of numbers: ∣Xi - Xj∣ (1

原创 簡單瞭解 RPC 實現原理

之前一直在用rpc框架,內部原理今天學習了一下,原作者樑飛,在此記錄下他非常簡潔的rpc實現思路,通過該思路瞭解一下原理。         一個完整的RPC架構裏面包含了四個核心的組件,分別是Client,Client Stub,Serv

原创 ReentrantLock 可重入鎖

        可重入性是指線程在持有鎖的情況下再次請求加鎖,如果一個鎖支持同一個線程的多次加鎖,那麼這個鎖就是可重入的。比如 Java 語言裏有個 ReentrantLock 就是可重入鎖。如果Redis 分佈式鎖要支持可重入,需要對客

原创 設計模式之工廠模式

一、定義 工廠方法(FactoryMethod)模式的定義:定義一個創建產品對象的工廠接口,將產品對象的實際創建工作推遲到具體子工廠類當中。這滿足創建型模式中所要求的“創建與使用相分離”的特點。 應用實例: 1、您需要一輛汽車,可以直接從

原创 設計模式之裝飾者模式

一、定義 裝飾(Decorator)模式的定義:指在不改變現有對象結構的情況下,動態地給該對象增加一些職責(即增加其額外功能)的模式,它屬於對象結構型模式。 二、優缺點 優點: 採用裝飾模式擴展對象的功能比採用繼承方式更加靈活。 可以設計

原创 dubbo四種負載均衡策略

客戶端調用服務端時,如何選擇調用服務端的哪臺機器上的服務呢。這就設計到負載均衡策略了,dubbo給出瞭如下四種策略: 隨機模式。按權重設置隨機概率。在一個截面上碰撞的概率較高,但調用越大分佈越均勻 輪詢模式。按公約後的權重設置輪詢比例

原创 緩存和 DB 的數據一致性問題

緩存和DB的數據不一致主要有兩種情況: 併發的場景下,導致讀取舊的 DB 數據,更新到緩存中。 緩存和 DB 的操作,不在一個事務中,可能只有一個操作成功,而另一個操作失敗,導致不一致。 常用的優化方案,主要是解決兩個問題: 將緩存可能存

原创 Drools簡單入門

因爲在項目要用到Drools,所以下面寫了一個簡單的例子學習入門。 一、Drools簡介: JBoss Rules 的前身是Codehaus的一個開源項目叫 Drools。最近被納入JBoss門下,更名爲JBoss Rules,成爲了JB

原创 緩存穿透、緩存擊穿、緩存雪崩區別

一、緩存穿透        緩存穿透是指緩存和數據庫中都沒有的數據,而用戶不斷髮起請求。(查詢一個一定不存在的數據。如資源表,查詢一個不存在的id,每次都會訪問DB,如果有人惡意破壞,很可能直接對DB造成影響。)       解決方案:

原创 DFS三兩道

1、LeetCode200. Number of Islands Description: Given a 2d grid map of '1's (land) and '0's (water), count the number of