1.考慮變數是否是執行緒安全的;
如mybatis中的sqlsession和jdbc中的connection是非執行緒安全的,就不能用static修飾,在多執行緒環境下產生資源競爭(a執行緒使用完畢關閉後,b執行緒還可能去使用),所以每次使用都要重新建立(new)2.靜態方法考慮是否存在執行狀態問題:如一些框架中的factory工廠類屬於重量級的類,new乙個相當好資源,也沒有new的必要,就用靜態的
如bean物件,每個bean物件具有唯一性,且在程式執行過程中有呼叫不同bean例項中資訊的必要,就不能用static修飾。如工具類,沒有保留執行狀態的必要(用完即可**)一般用static修飾
靜態與非靜態的變數和方法
靜態方法 屬於類本身。非靜態方法 屬於類生成的每個物件。如果乙個方法與依賴於類的個別特徵,應該保持靜態。否則應該定義為非靜態。public class methoddemo class classa public static void staticmethod2 public static voi...
靜態方法與非靜態方法
靜態類 在類 class 上加入static修飾,表示該類無法被例項化,並且該類中,無法例項化變數或函式。那麼如果要在此靜態類中新增函式 變數 屬性,則必須都是靜態的。靜態類的主要特性 1 僅包含靜態成員。2 無法例項化。3 靜態類的本質,是乙個抽象的密封類,所以不能被繼承,也不能被例項化。4 不能...
靜態方法與非靜態方法
c 的類中可以包含兩種方法 c 靜態方法與非靜態方法。讓我們來看看最直觀的差別 使用了static 修飾符的方法為靜態方法,反之則是非靜態方法。下面我們分四個方面來看看c 靜態方法與非靜態方法的差異 c 靜態方法與非靜態方法比較一 c 靜態成員 靜態成員屬於類所有,非靜態成員屬於類的例項所有。每建立...