摘自:
什麼是靜態方法
靜態方法的1個特別作用就是不用建立類的物件,而直接用類裡面的方法(public static 2個條件),
例如: class a }
可以這樣直接用: a.b(); 那麼在程式中如何可以利用靜態欄位和靜態構造方法,通常適用於於一些不會經常變化而又頻繁使用的資料,比如連線字串,配置資訊等,當滿足上面所說的兩點時,進行一次讀取,以後就可以方便的使用了,同時也節約了託管資源,因為對於靜態成員,乙個靜態欄位只標識乙個儲存位置。對乙個類無論建立了多少個例項,它的靜態字段永遠都只有乙個副本。 static: 類變數(物件共享)可以用類名,物件名點取,間接使用。 類方法
1)static方法中不能直接使用非靜態成員, 因為非靜態成員與例項相關,通過物件點取間接使用
2)static方法中不能用this(與例項相關)
3)非static方法中可以使用static成員
靜態方法有什麼弊端?
問:我翻看一些原始碼工程時看到幾乎沒有什麼靜態方法唯獨ms的sqlhelper中幾乎全是靜態方法 為什麼呢?
答1:在一些系統中使用非常頻繁的方法都使用靜態方法可以提高系統效能我是這麼認為的 :)
答2:本身不可公升級, 重寫 這要看乙個軟體產品的目的是什麼了.
答3:為了方便,不用例項化,但這樣程式編譯執行時就占用了系統資源
答4:靜態的屬性和方法在程式啟動的時候,就全部裝入記憶體的,而不管這些方法、屬性以後有沒有用到。即使是沒有人再訪問程式,這部分記憶體仍然不會釋放還有就是,所有訪問者看到的靜態屬性的資料幾乎都是一樣的,比如a使用者設定了username這個屬性,b使用者訪問的時候,得到的username仍然是a使用者設定的那個。這種特性,如果用在固定資料中,那不會有太大問題,比如連線字串之類的
答5:靜態方法/資料成員是屬於類的,不是屬於某乙個物件的,因而呼叫它不需要例項化;靜態方法和靜態資料成員相當於共享變數。為該類的所有物件所共有,因而在需要共享資料時,定義這種型別時很好的選擇。 一但定義乙個類後(不一定要例項化物件)該類的所有靜態成員就載入記憶體(並不是程式啟動,就裝入記憶體,沒有定義該類時它不會載入記憶體) 靜態成員的作用域與它所屬的類的作用域相同
什麼是真靜態
純靜態 將php程式生成靜態的 html 檔案,儲存到伺服器的磁碟中。原理 在使用者訪問 php程式時,首先檢測靜態的 html 檔案是否存在,如果存在直接輸出靜態檔案,如果靜態檔案不存在,查詢資料庫,生成靜態檔案,並輸出。優勢 減少 php程式編譯和對資料庫的查詢。資料緩衝區 資料緩衝區是使用者前...
什麼是靜態語言,什麼是動態語言?
定義 通常我們所說的動態語言 靜態語言指 動態型別語言 dynamically typed language 和 靜態型別語言statically typed language 還有乙個 dynamic programming language 動態程式語言 靜態程式語言。動態型別語言 在執行期間檢...
什麼是靜態建構函式
靜態建構函式初始化類 可以初始化static 欄位而不是const 字段 當類被裝載時由.net呼叫 不能被呼叫 沒有引數,沒有訪問修飾符 靜態建構函式 示例 struct pair static pair private int x,y 靜態建構函式使用注意 靜態建構函式只能由.net呼叫,而不能...