對volatile的認知

2021-10-10 10:57:41 字數 266 閱讀 5908

volatile是jvm提供的輕量級同步機制

保證了不同執行緒對變數操作的記憶體可見性

強制執行緒每次讀取時從主記憶體取值

禁止指令重排序

編譯器可能對輸入指令進行執行重排序,各個語句執行的先後順序不一致,但會保證執行結果一致, 但是忽略的資料的依賴性

通過在指令間新增記憶體屏障,強制重新整理cpu快取資料,並且禁止指令重排序, store的屏障指令進行寫操作, 使用copy命令重新整理到主記憶體,load屏障指令從主記憶體中讀取共享變數

不具備原子性

對反射的認知

反射其實是通過class物件來呼叫類裡面的方法 無參無返回,無參有返回,有引數無返回,有引數有返回 或者屬性,反射還可以呼叫私有方法和私有屬性。反射的使用方法 system.out.println 屬性 1.得到你的類的物件 class c class.forname com.zking.entit...

對單例的認知

最近看到了 單例 這塊,簡單記錄下 單例就是該類只能返回乙個例項。單例所具備的特點 1.私有化的建構函式 2.私有的靜態的全域性變數 3.公有的靜態的方法 單例分為 懶漢式 餓漢式和雙層鎖式 餓漢式 先初始化物件 single類一進記憶體,就已經建立好了物件 public class singlet...

對區塊鏈的認知

區塊鏈技術,也可以叫做區塊鏈儲存技術,是一種新的儲存方式。既然是一種儲存方式,那麼我們可以把區塊鏈和u盤,硬碟,網盤這些抽象為同一類東西。在這一類東西裡面,區塊鏈的儲存介質可以說和網盤最為一致的 網路 但不同的,也是最主要的區別是,網盤是集中儲存,而區塊鏈是分布式。簡單的說,使用網盤,需要把資料儲存...