學習開發知識點2

2021-10-10 02:46:55 字數 1378 閱讀 3305

單一職責原則

黎克特制替換原則

依賴倒置原則

介面隔離原則

迪公尺特法則

開閉原則

1、繼承thread類實現多執行緒

2、實現runnable介面方式實現多執行緒

3、使用callable實現有返回結果的多執行緒

但thread本質上也是實現了runnable介面的乙個例項,它代表乙個執行緒的例項,並且,啟動執行緒的唯一方法就是通過thread類的start()例項方法

1.首先我們在專案中的pom檔案中配置了乙個redis座標

2.我們配置好redis後編寫乙個工具類「jedisdao」將redis的一些基本操作命令進行封裝

3.然後將一些高訪問的資料,商品的一些基本資訊和放入快取中

4.如果快取過期之後來了一大波資料訪問,會導致資料庫的崩盤。(雪崩)

如何解決:設定不同快取的過期時間,防止同一時間過期

5.如果查詢一條資料庫不存在的資料,導致快取中不存在那條資料,壓力都給到資料庫身上(穿透)

解決:快取乙個空物件,不過效果一般;使用布隆過濾器,效果比較好,不過維護難。

布隆過濾器 一種基於概率的資料結構 執行速度快 記憶體小 具有一定的識別錯誤的機率 不存在誤報 存在漏報

6.設定快取的過期時間(persist key)

7.刪除快取的過期時間(redis 刪除過期時間)

首先在支付這一塊用到了事物,使用事物來進行管理。要麼全部成功,要麼全部失敗。失敗的話就執行rollback進行回滾

1.讀未提交(read uncommitted):乙個事務還沒有提交時,它做的變更就能被別的事務看到。

2.讀提交(read committed):乙個事物提交之後,它做的變更才會被其他事務看到。

3.可重複讀(repeatable read):乙個事物執行過程中看到的資料,總是跟這個事務在啟動時看到的資料是一致的。未提交變更對其他事務也是不可見的。

4.序列化(serializable):對於同一行記錄,寫會加「寫鎖」,讀會加「讀鎖」,當出現鎖衝突時,後訪問的事務需要等前乙個事務執行完成,才能繼續執行。

首先我們的專案中自己定義了乙個shoppingresult裡面封裝了業務狀態,響應的訊息以及響應的資料。這個時候我們使用ajax去拿資料如果拿到了對應的資料那麼它會進行乙個引數的傳遞,告訴我是否成功。

newfixedthreadpool固定數目的執行緒池

newsinglethreadexecutor單執行緒化的執行緒池

newcachedthreadpool可快取的執行緒池

newscheduledthreadpool 定義乙個可定時和週期性執行的執行緒池

修飾例項方法,對當前例項物件加鎖

修飾靜態方法,對當前類的class物件加鎖

修飾**塊,對synchronized括號內的物件加鎖

深度學習知識點2

1.為什麼引入非線性啟用函式?引入非線性啟用函式,可以使深層的神經網路不再是線性的輸入組合,而是可以逼近任意函式,如果不使用啟用函式,在這種情況下每一層的輸出都是上一層輸入的線性函式,無論神經網路的有多少層,輸出的最終結果都是乙個線性組合,與沒有隱藏層的效果相差不多,也就成了最原始的感知機了。2.為...

開發知識點記錄

獲取乙個集合中的資料,transform是物件組裝方法 流是從支援資料處理操作的源生成的元素序列,源可以是陣列 檔案 集合 函式。流不是集合元素,它不是資料結構並不儲存資料,它的主要目的在於計算 plist.stream filter person 23.0 equals person.getord...

小知識點2

find name svn exec rm rf find type d name svn xargs rm rf find type d name svn make otapackage j24 adb shell am start n 包名 類名 adb shell pm list packag...