Java java static識別符號引發的思考

2021-07-26 14:35:29 字數 703 閱讀 5826

學習的關鍵不在記住語法,而要去思考設計者為什麼要發明這個語法或標識。

拿static來舉例,static是用來修飾類的成員變數和成員函式的,只要修飾了成員變數,那麼該成員變數會被所有該類建立出的例項所共享,可是為什麼要弄個成員變數給所有例項共享呢?每個物件都有自己的不也行嗎。問題繼續往下走,我們拿person來舉例。

class person()

person p1=new person();

person p2=new person();

person.country;

p1.country;

建立2個person類的例項,每個例項所特有的name將各自建立乙份,而country將單獨放在記憶體當中的資料共享區,既然是每個person物件的國家都是中國,那麼,如果把country變數給每個person例項都建立乙份,將浪費記憶體空間。因此,把共有的成員變數放在公共資料區。

接下來分析下static修飾過的成員變數的特性:

1.隨著類的載入而載入

2.它可以被類名呼叫或者類物件呼叫

3.在類的物件被例項化之前就已經存在

4.當static修飾成員函式的時候,只能在該函式中呼叫靜態成員變數。(很簡單,舉個反例,靜態成員函式也是在類物件例項化之前存在的,若在該函式中,出現this.name,此時this不是任何物件,因為壓根還沒被例項化,所以出現非靜態變數name是錯誤的。)

打標 去標工具。

經常有乙個物件都是有乙個int型別的字段,用於給該物件進行打標。乙個int型別是32位,就說明 這樣的乙個字段,可以被打上32個標 每乙個標佔1位 0表示未被打標,1表示已被打標。寫了乙個util來進行打標與去標操作。如下 public class flagbitutil 去標 param falg...

Camera Calibration 相機標定

1 什麼是相機標定 what is camera calibration?找到影響影象成像過程的內部相機引數 影象中心 不是width 2,height 2 焦距長度 行畫素和列畫素的比例因子 扭曲factor 鏡片扭曲 2 動機 camera calibration 用於 重構真實世界模型 vir...

CoordinatorLayout實現標題欄的隱藏

coordinatorlayout是design包裡面的乙個控制項。所以在使用時需要導包。compile com.android.support design 24.1.1 layout scrollflags中的幾個值 scroll 所有想滾動出螢幕的view都需要設定這個flag,沒有設定這個f...