public
static
void
publisher()
;// 執行訂閱
subscriber();
//**變動會觸發訂閱者裡的函式
phone.price =
500;
}
///
/// 事件的發布者,發布事件並且在滿足條件的情況下,觸發事件
///
public
class
phone
public
string name
private
int _price;
public
int price
set);}
this
._price =
value;}
}public
event
eventhandler discounthandler;
}
public
static
void
subscriber()
///
/// 訂戶 關注事件,事件發生之後,自己做出相應的動作
/// **變動會觸發buy函式
///
public
class
teacher")
;xeventargs xeventargs =
(xeventargs)e;
console.
writeline
($"之前的**");
console.
writeline
($"現在的**");
console.
writeline
("買下來");
}}public
class
student")
;xeventargs xeventargs =
(xeventargs)e;
console.
writeline
($"之前的**");
console.
writeline
($"現在的**");
console.
writeline
("買下來");
}}
public
class
xeventargs
:eventargs
public
int newprice
}
Voliate的底層原理
jvm 底層是通過乙個叫做 記憶體屏障 的東西來完成。記憶體屏障,也叫做記憶體柵欄,是一組處理器指令,用於實現對記憶體操作的順序限制。所以能禁止指令重排序,即volatile能在一定程度上保證有序性。一定程度理解如下 語句1和語句2的順序不保證 語句4和語句5的順序不保證 但是無論怎麼重排,語句3前...
HashMap的底層原理
簡單來說,hashmap的實現是 陣列 鍊錶 陣列是hashmap的主體,鍊錶則是主要為了解決雜湊衝突而設立的。對於查詢來說,陣列更加的方便 對於刪除,修改,鍊錶更加的方便。hash表的本質就是乙個陣列,陣列中的每乙個元素被稱為乙個箱子 bin 箱子中存放的是鍵值對。儲存過程如下 根據k值計算他的雜...
HashMap的底層原理
在jdk1.6和jdk1.7中hashmap是桶加鍊表的實現方式.hashmap的底層結構就是乙個陣列,陣列中每乙個元素又是乙個鍊錶.當新增乙個元素 key value 的時候,根據key的hash值 或者說呼叫key的hashcode方法 來確定插入到哪乙個桶中 確定插入陣列中的位置 當桶中有多個...