1.static
1.static 用于修飾類變量掀泳,方法和方法塊
2.被static修飾的方法與變量可被所有類調(diào)用宿崭,通過類名.方法名额各,類名.變量調(diào)用
注:方法內(nèi)部只能調(diào)用同樣被 static 修飾的方法汹桦,不能調(diào)用普通方法
3.靜態(tài)方法與靜態(tài)變量與類對象是無關(guān)的朽合,無論new多少個對象叽奥,靜態(tài)方法與靜態(tài)對象只被初始化一次扔水。
2.final
1.被 final 修飾的類,表明該類是無法繼承的朝氓;
- 被 final 修飾的方法魔市,表明該方法是無法覆寫的主届;
- 被 final 修飾的變量,說明該變量在聲明的時候待德,就必須初始化完成君丁,而且以后也不能修改其內(nèi)存地址。
注:無法修改其內(nèi)存值将宪,但可以修改其值绘闷。即指向的內(nèi)存地址不變,但地址對應(yīng)的值改變较坛。
3.volatile
volatile 的意思是可見的印蔗,常用來修飾某個共享變量,意思是當(dāng)共享變量的值被修改后丑勤,會及時通知到其它線程上华嘹,其它線程就能知道當(dāng)前共享變量的值已經(jīng)被修改了。
(1)線程在拿值時法竞,是直接和 CPU 緩存打交道的耙厚,而不是內(nèi)存,會出現(xiàn)數(shù)據(jù)不同步的情況,即線程拿到相同的變量卻擁有不同的值岔霸。
(2)此時需要一種機制薛躬,就是內(nèi)存會主動通知 CPU 緩存。當(dāng)前共享變量的值已經(jīng)失效了呆细,你需要重新來拉取一份型宝,CPU 緩存就會重新從內(nèi)存中拿取一份最新的值。