資料共享
成員變數(例項變數)和靜態變數(類變數)的區別
兩個變數的生命週期不同
成員變數隨物件的建立而存在,隨物件被**而釋放
靜態變數隨類的載入而存在,隨類的消失而消失
呼叫方式不同
成員變數只能被物件呼叫
靜態變數還可以被類名呼叫
資料儲存位置不同
成員變數–>堆記憶體的物件中,也叫物件的特有資料
靜態變數–>方法區(共享資料區)的靜態區,也叫物件的共享資料
修飾變數:
每個物件都共有的屬性就可以設定為static,被修飾的成員被所有的物件共享,且可以直接用 類名.x靜態成員 的方式呼叫
static優先於物件存在,因為static成員隨類的載入就已經存在了
修飾方法:靜態方法
靜態方法只能訪問靜態成員(非靜態既可以訪問靜態也可以訪問非靜態)
靜態方法中不可以使用this或者super關鍵字(物件不存在)
修飾**塊:靜態**塊
隨著類的載入而執行,而且只執行一次
作用:用於類的初始化
當類中的變數全部是靜態的時候才用靜態**塊去初始化變數
class
staticdemo
}class
objectdemo
}
下列情況需要被定義為靜態方法
函式沒有訪問到物件的特有資料,即**上沒有用到非靜態成員變數,一般定義為靜態方法
如果不需要訪問非靜態變數也可以定義為非靜態方法,但是非靜態方法只能被物件所呼叫,為了呼叫乙個沒有訪問到特有資料的方法而建立乙個物件是沒有意義的
*/
static靜態修飾符
靜態成員歸整個類所有,不依賴類特定的例項,是被類的所有例項共享。只要這個類被jvm載入,就可以根據類名在全域性資料區域內找到它們。因此,靜態成員可以在任何物件建立之前訪問而無需訪問物件。static關鍵字修飾的成員變數稱為靜態成員變數,簡稱靜態變數。靜態變數是屬於類,但是不依賴類特定的例項。靜態變數...
修飾符之static
靜態屬性可以用類名直接訪問,在類載入時就會被初始化到方法區。成員變數在建立物件時初始化 1.靜態方法可以用類名直接呼叫。2.靜態方法中只能訪問類的靜態成員 包括屬性和方法 3.靜態方法中不可以出現this this是指當前物件,而靜態方法裡時沒有當前物件的 注意 1.引用調靜態方法,實際是對引用型別...
static修飾符的使用
static修飾符能修飾內部類,方法,變數,塊。靜態 成員意味著該成員屬於類級,而不依賴於類的例項,也不依賴於任何乙個類的成員,可以不通過建立類的例項來使用靜態成員。靜態變數在類被加載入時初始化,乙個類只有乙個靜態變數的記憶體空間,而不會依賴於物件再次分配空間。區域性變數不能被宣告為靜態變數。靜態方...